本章学习目录
一,抽象类abstract
定义:
- 抽象类类似于模板,为子类提供了一个通用模板,子类可以在这个基础上进行扩展
- 通过抽象类我们可以做到严格限制子类设计,使子类之间更加通用
抽象方法:
- 不需要方法体的方法,需要用abstract关键字修饰,只出现在抽象类中
特点:
- 有抽象方法的类只能定义抽象类
- 抽象类不能实例化,即不能通过new关键字来实例抽象类
- 抽象类可以包含属性,方法,构造方法,但是构造方法不能用来new实例,只能用来被子类调用
- 抽象类只能用来被继承
- 抽象方法必须被子类实现
二,接口interface
定义:
- 全面的专业的实现了,规范和具体实现的分离
- 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。特点:
- 对比于抽象类,抽象类提供了某些具体的实现,而接口不提供任何实现,
- 接口中的所有方法都是抽象方法,接口是面向规范的,规定了一批具有公共方法的规范
- 接口定义了功能,实现该接口即实现这些功能
- 访问权限符只能能使
public
或默认- 接口名和类名采用相同的命名机制
- 接口可以被多继承
- 接口中的属性只能是常量,即默认为
public static final
修饰的可以不写,(因为是静态的所以可以直接通过接口名点出来)- 接口中的方法默认用
public abstract
修饰的可以不写- 即接口中只能包抽象方法jdk1.8后新加了默认方法和静态方法,不能有普通属性,构造方法,普通方法,静态块等