抽象abstract:
抽象是为了隐藏,用于扩展对象的行为和功能
修饰变量:可以是常量,可以为变量
修饰方法:1.只有方法声明,没有方法实现
2.需要子类重写,不能用private,final修饰
修饰类:1.不能被实例化
2.类包含抽象方法必须在子类中被实现,否则子类只能声明abstract
3.抽象类中可以有抽象属性,抽象方法,也可以没有,但是一旦方法声明为抽象,类必须抽象
接口interface
接口解决了单继承的问题,降低程序模块的耦合。
1.只含有常量和抽象方法,没有变量和方法实现。即成员类型默认public static final,方法默认public abstract,
2.接口是一套行为规范
3.接口不是一个类,不能实例化,没有构造器
对比:
1.接口不能含有任何非抽象方法,而抽象类可以
2.类可以实现多个接口,但只有一个父类,而接口可以多实现
3.抽象类有构造方法,接口没有。
4.设计理念区别
抽象类:被继承体现的是:is a 的关系,抽象类中定义的是继承体系的共性功能
接口:实现接口体现的是:like a的关系,接口中定义的是该继承体系的扩展功能