黑马程序员技术交流社区

标题: abstract class和interface有什么区别?  [打印本页]

作者: 824519050    时间: 2015-7-16 09:47
标题: abstract class和interface有什么区别? 
abstract class和interface有什么区别? 

作者: 拾起落叶    时间: 2015-7-16 10:22
一个是抽象类,一个是接口
接口可以说是一个特殊的抽象类

区别:
            1、抽象类体现继承关系,一个类只能单继承。
                 接口体现实现关系,一个类可以多实现。同时接口与接口之间有继承关系。
            2、抽象类是继承,是 "is a "关系。
                接口是实现,是 "like a"关系。
            3、抽象类中可以定义非抽象方法,供子类直接使用。
                 接口的方法都是抽象,接口中的成员都有固定修饰符。
            4、抽象类中可以私有变量或方法。
                接口中的常量和方法都是public修饰的权限。

作者: 陈鹏No1    时间: 2015-7-16 10:23
在abstract class方式中,类可以有自己的数据成员,也可以有非abstarct的成员方法。抽象方法和抽象类都必须被abstract关键字修饰。抽象类中的方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。 interface是个特殊的抽象类,所有成员方法都是抽象的。接口中所有成员方法都是public abstract修饰的,所有成员变量都是public static final修饰的(相当于常量)。而且子类可以多实现接口,接口与接口直接也可以多继承。在使用的时候,一般扩展功能定义在接口中,这样可以提高程序的扩展性。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2