抽象类:是由各个具有相同特征的类再抽象得到的抽象类,抽象类直接还可能具有相同特征,所以它还可以抽象。但是抽象类它无法创建对象。
作用基本就是拿来继承的,如果加了final,肯定报错
虽然它不能实例化对象,但是可以有构造方法,供子类调用
抽象方法: 1.没有方法体,以;结束
2.方法名前面的修饰符时abstract
3.它只能出现在抽象类中
重点:如果非抽象子类继承了抽象类以及抽象类的抽象方法,那么必须在子类中将抽象方法重写成实例方法。
接口:
- 是完全抽象的(抽象类时半抽象的)
- 接口可以继承多个接口
- 接口中只包含常量和抽象方法,且都是public修饰
- 接口中的方法不能有方法体,即{},应该以;结束
- 接口中的抽象方法可以不写public abstract,直接返回值或者void,方法名加();
- 接口中的元素都是public修饰
- 接口中的常量public static final可以不写
- 是一种引用数据类型
接口的作用:
- 所有接口中的抽象方法在类继承过后都要重写,并且在重写方法时,public不能省略,因为在子类继承父类时,访问权限不能低于父类访问权限
- 一个类可以实现多个接口,但类和类只支持单继承
- 有了接口,就有了很强的扩展力
- 类与类之间是继承,用extends,但是类与接口是实现,用implements
抽象类和接口的区别:
- 接口是完全抽象的,抽象类时半抽象的
- 抽象类是对事物本身的抽象描述,接口是对行为方式的抽象描述
- 抽象类有构造方法,接口没有,它只允许出现常量和抽象方法
- 抽象类只能单继承,接口可以多实现
- 接口使用的很多,抽象类较少