A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

abstract class和interface有什么区别? 

2 个回复

倒序浏览
一个是抽象类,一个是接口
接口可以说是一个特殊的抽象类

区别:
            1、抽象类体现继承关系,一个类只能单继承。
                 接口体现实现关系,一个类可以多实现。同时接口与接口之间有继承关系。
            2、抽象类是继承,是 "is a "关系。
                接口是实现,是 "like a"关系。
            3、抽象类中可以定义非抽象方法,供子类直接使用。
                 接口的方法都是抽象,接口中的成员都有固定修饰符。
            4、抽象类中可以私有变量或方法。
                接口中的常量和方法都是public修饰的权限。
回复 使用道具 举报
在abstract class方式中,类可以有自己的数据成员,也可以有非abstarct的成员方法。抽象方法和抽象类都必须被abstract关键字修饰。抽象类中的方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用。 interface是个特殊的抽象类,所有成员方法都是抽象的。接口中所有成员方法都是public abstract修饰的,所有成员变量都是public static final修饰的(相当于常量)。而且子类可以多实现接口,接口与接口直接也可以多继承。在使用的时候,一般扩展功能定义在接口中,这样可以提高程序的扩展性。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马