黑马程序员技术交流社区
标题:
接口和抽象类的问题
[打印本页]
作者:
叶涛
时间:
2011-10-17 17:17
标题:
接口和抽象类的问题
接口和抽象类在用法上有哪些区别?哪些地方最需要注意的?
作者:
蒋先
时间:
2011-10-17 18:53
abstract class 在Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是 static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。abstract class和interface所反映出的设计理念不同。
作者:
张奇云
时间:
2011-10-17 19:00
接口是一组抽象方法,常量和内嵌类型的集合。接口是一种数据类型,它以抽象的形式来定义类型。一个类可实现多个接口,提供功能实现并进行类型扩展。接口为多个互不相关的类约定某一特性的方法声明,一个类如果无法实现指定接口中得所有抽象方法,则它必须声明为抽象类。
抽象类为子类约定方法声明,并给出部分实现,包括构造方法等;抽象方法在多个子类中表现出多态性。
注意类是单继承的,一个类只可以继承一个抽象类并给出抽象类中抽象方法的具体实现。但一个类却可以通过实现多个接口,从而给出各个接口中所有抽象方法的具体实现。
作者:
贾双涛
时间:
2011-10-17 22:39
主要的区别,一个类只可以去继承一个抽象类,但是却可以实现多个接口,抽象类往往是在类中的某个方法需要子类去重写所以定义了一个抽象类,而接口往往被用来定义一个标准—— 一个功能的使用和实现之间的标准。大家都遵循这样的标准,这样我们写的程序才能够被正常的使用。
作者:
罗亚东
时间:
2011-10-18 01:46
具有关键字abstract ,在实现内容上没有完全定义的类就叫抽象类。
抽象类和接口的区别如下:
① 在类来继承抽象类时,只需实现部分具体方法和全部抽象方法,而实现接口则要实现里面的全部方法。
②在接口中无成员变量,而抽象类中可有成员变量。
在Java中引进接口主要是为了解决多继承的问题。
1)接口中不能有非抽象方法,但抽象类中可以有。
2)一个类能实现多个接口,但只能有一个父类。
3)接口并不属于继承结构,它实际与继承无关,因此无关的类也可以实现同一个接口。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2