抽象类
一,抽象类的概念
对象是现实中存在的,而类是现实中不存在的,但是他们两个的共同特征则可以被看作抽象类。
例:
因此,如上图说示:因为类本身就是不存在,再把类和类之间的共同特征抽象化为抽象类,其本身更不存在。所以抽象类无法实例化对象,无法new对象
其实,抽象类更像是二次筛选共同特征,使得面向的对象更加的细化,那么自然,抽象类还能继续找出共同点再分出新的抽象类。
二,
(1)抽象类属于引用数据类型
(2)语法为:
[修饰符列表] abstract class 类名 { 类体 }
(3)虽然抽象类无法实例化对象,但是抽象类可以被子类继承!!!
例
//客户类
abstract class customer{ }
class customer1 extends customer{}//√
//而且
abstract class customer2 extends customer{}//√
子类继承了抽象类,子类为抽象类,但子类可以实例化对象
抽象类实例化方式不是通过new方式来创建对象,而是依靠Java的多态来通过父类的引用指向子类的实例来间接地实现父类的实例化。子类实例化,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类给实例化了。
(4)final和abstract不能一起使用
他们属于对立关键字
final不能被继承,但是abstract是需要被继承的(这是抽象类诞生的一大原因)抽象类的虽然无法实例化,但抽象类有构造方法,专门给予子类使用。