二、接口
在软件工程中,接口泛指供别人调用的方法或者函数,它是对行为的抽象。接口中可以有变量和方法,接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误),而方法会被隐式地指定为public abstract方法且只能是public abstract方法(用其他关键字,比如private、protected、static、 final等修饰会报编译错误),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。从这里可以隐约看出接口和抽象类的区别,接口是一种极度抽象的类型,它比抽象类更加“抽象”,并且一般情况下不在接口中定义变量。
三、接口抽象类区别
语法层面的区别:
(1)接口多实现、抽象类单一继承
(2)接口只能存在抽象方法,抽象类可以有成员方法的实现,还可以有静态代码块和静态方法。
(3)接口的变量只能是public static final, 抽象类的成员变量可以是多种类型的
(4)抽象类为了代码的复用,接口主要是为了实现多态
(5)抽象类跟子类是一般或特殊关系,接口为其子类提供需要实现的规则
设计层面的区别:
(1)抽象类是对一种事物的抽象,即对类抽象,接口是对行为的抽象。
(2)继承是一种是不是的关系,接口是一种有没有的关系
(3)抽象类是一种模板式设计,接口是辐射式设计,抽象类改动,子类不一定需要改动,而接口改动,所有实现接口的类必须都改动
四、探讨
接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类
接口可以继承接口。
抽象类可以实现(implements)接口
抽象类可继承实体类,但前提是实体类必须有明确的构造函数。
http://www.cnblogs.com/dolphin0520/p/3811437.html