在JAVA中,接口和抽象类有何异同?
- 提问者网友:藍了天白赴美
- 2021-06-03 10:29
- 五星知识达人网友:山君与见山
- 2021-06-03 10:48
那就一个个来说吧,呵呵,可能不全。
第一,抽象类体内可以有被实例的方法,但必须至少有一个抽象方法,而接口的方法必须是抽象的;
第二,抽象类只是被继承一次,而一个类可以有N个接口;
第三, Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为,所以Java接口比Java抽象类更抽象化。
第四,Java接口的方法只能是抽象的和公开的,而抽象类可以有私有的属性~~~
呵,我的认知就这么多了。如果有兴趣可去这里看看: http://www.tsp2c.cn/indextrans.htm 希望我说的对你有所帮助哦
- 1楼网友:妄饮晩冬酒
- 2021-06-03 14:57
1.抽象类可以有普通的成员变量而接口不可以有,
2.抽象类可以包含非抽象的普通方法而接口包含的都是抽象方法。
3.抽象类可以有构造方法而接口不可以有。
4.一个类可以实现多个接口但只能实现一个抽象类,
- 2楼网友:妄饮晩冬酒
- 2021-06-03 14:39
- 3楼网友:执傲
- 2021-06-03 13:20
- 4楼网友:七十二街
- 2021-06-03 12:20
接口就是里面的方法完全抽象的抽象类了
抽象类里面可以存在实现了的方法。接口不行。
- 5楼网友:封刀令
- 2021-06-03 11:30
简单说,就是一个超类有自己的方法,子类继承超类的方法,但是子类不想继承超类的方法, 这时就要抽象类来解决.抽象类的抽象方法没有方法体({}),继承的子类可以写自己方法体, 接口指定的所有方法都是抽象的,接口比抽象类更抽象.
需要具体点的回答
在Java语言中,接口(Interface)是对符合接口需求的类的一套规范。接口与包相似,也是用来组织应用中的各类并调节它们的相互关系的一种结构,更准确地说,接口是用来实现类间多重继承功能的结构 1 接口概念 接口主要作用是可以帮助实现类似于类的多重继承的功能。在Java中,出于简化程序结构的考虑,不再支持类间的多重继承而只支持单重继承,即一个类至多只能有一个直接父类。然而在解决实际问题的过程中,仅仅依靠单重继承在很多情况下都不能将问题的复杂性表述完整,需要其他的机制作为辅助。 2 接口声明 Java中声明接口的语法如下: [public] interface 接口名 [extends 父接口名列表] { //接口体; //常量域声明 [public] [static] [final] 域类型 域名=常量值; //抽象方法声明 [public] [abstract] 返回值 方法名(参数列表) [throw异常列表]; } 从上面的语法规定可以看出,定义接口与定义类非常相似,实际上完全可以把接口理解成为一种特殊的类,接口是由常量和抽象方法组成的特殊类 (1)接口中的属性都是用 final修饰的常量, (2)接口中的方法都是用abstract修饰的抽象方法,在接口中只能给出这些抽象方法的方法名、返回值和参数列表,而不能定义方法体,即仅仅规定了一组信息交换、传输和处理的“接口” 2 接口的实现 一个类要实现某个或某几个接口时,有如下的步骤和注意事项: (1)在类的声明部分,用implements关键字声明该类将要实现哪些接口; 如下: class 类名 implements 接口{ } (2)如果实现某接口的类不是abstract的抽象类,则在类的定义部分必须实现指定接口的所有抽象方法,即为所有抽象方法定义方法体,而且方法头部分应该与接口中的定义完全一致,即有完全相同的返回值和参数列表; (3)如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法。 (4)一个类在实现某接口的抽象方法时,必须使用完全相同的方法头。 (5)接口的抽象方法,其访问限制符都已指定是public,所以类在实现方法时,必须显式地使用public修饰符。 一个接口的定义由关键字interface开始以包含pubic final static数据。但这不是必须的,即子类也可以使用一个方并包含一套public abstract方法,接口也可为使用接口,一个类必须声明实现(关键字implements)接口,指定的参数个数和返回类型定义每个方法。当没有缺省的实现用来继承时,通常使用接口而不使用抽象类。 当某个类实现一个接口时,也有同样的“是一个”继承性关系。并且必须根据接口中为实现一个以上的接口,只要在类定义中的关键字implements后面列出接口名逗号分隔。