抽象类
1、什么是抽象类?
类与类之间具有共同特征,讲这些共同特征提取出来,形成的就是抽象类。
类本身是不存在的,所以抽象类无法创建对象(无法实例化)
2、抽象类属于什么类型?
抽象类属于引用数据类型
3、抽象类怎么定义?
语法:
【修饰符列表】 abstract class 类名{
类体;
}
4、抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的
5、abstract 与final 不能联合使用,这两个关键字是对立的
6、抽象类的之类可以是抽象类,也可以是非抽象类
7、抽象类虽然无法实例化,但是抽象类有构造方法,构造方法是供子类使用的
8、抽象类关联到一个概念:抽象方法.什么是抽象方法呢?
抽象方法表示没有实现的方法,没有方法体的方法。例如:
public abstract void doSom();
特点一:没有方法体,以分号结尾
特点二:前面修饰符列表中有abstract关键字。
9、
(1)抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中
(2)重要结论:一个非抽象的类继承抽象类实现了
这是java语法上强行规定的,必须的,不然编译器就报错了
这里的覆盖或者说重写,也可以叫做实现(对抽象的实现)
补充 能不能够使用多态?
父类型引用指子类型对象 //向上转型(自动类型转换)
面向抽象编程:
以后你都是调用的a.xxx
a 的类型是Animal,Animal是抽象的
要面向抽象编程,不要面向具体编程,降低程序的耦合度,提高程序的扩展力
这种编程思想符合OCP(OCP:即 Open Close Program
Open:对功能的扩展是open的,Close:业务主逻辑是不能更改的)原则
super()调用的是父类的无参构造方法