1.接口:
因为java不支持多继承,所以有接口,一个类只能继承一个父类,但是可以实现多个接口,接口本身也可以继承接口。
接口里面的成员变量默认都是私有变量(public static final)必须被初始化
接口里面的方法默认是public abstract类型的隐式声明
接口没有构造方法,不能被实例化
接口不能实现另外一个接口,但是可以继承多个接口
类如果实现了一个接口,那么必须实现接口里面的所有方法,否则类要被定义为抽象类
2.抽象类:
如果一个类被声明为abstract,该类不能生成对象,只能被继承
抽象方法必须存在在抽象类中
抽象类可以有一般的变量和方法
子类继承抽象类必须实现其中的抽象方法abstract void fangfa{ };
区别
1.接口和抽象类都不能被实例化
2.接口不包含构造方法,抽象类可以包含构造方法
3.接口只能包含抽象方法,抽象类可以包含普通方法
4.接口只能定义静态常量属性(public static final),抽象类既可以定义普通方法,也可以定义静态常量属性