一、概念阐述
- 抽象类:
1.抽象:非具体的功能
2.抽象类:含有抽象功能的类,要用abstract关键字修饰
3.抽象类的特点:
3.1不能被实例化–但是它有构造方法–用于子类访问父类数据的初始化
3.2抽象类的实例通过具体子类继承(需要重写抽象父类的所有抽象方法)的方式来实现,也就是多态。
3.3抽象类的子类可以是抽象类,也可以是具体类。
3.4抽象类中可以没有抽象方法,但是有抽象方法的类必须要定义成抽象类(注意有抽象方法不一定是抽象类,还有接口) - 接口:
1.接口:扩展功能
2.格式:interface 接口名{}
3.接口只是扩展功能,其中的方法不用实现,而是抽象的。所以接口也是抽象的。所以接口也不能直接实例化。
4.接口的实例化:通过多态的方式,类来implements 接口{}
5.接口的子类可以使抽象类,也可以是非抽象类(需要重写接口的所有抽象方法)。
6.扩展:多态的分类:
6.1具体类多态(几乎没有)
6.2抽象多态(常用)
6.3接口多态(最常用)
7.接口没有构造方法
- 抽象类和接口的异同