什么是抽象类呢?
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类是不能创建对象的原因:
1.子类更具体,父类更抽象,直接创建父类对象本身没有意义。
2.如果创建的是父类对象再调用方法的时候,调用的父类中的方法,而非子类的方法,它违背了多态的这种思想和设计
3.因为父类引用指向子类对象时,调用的方法是子类重写的方法,一般父类中的描述不够具体,并不是说抽象类的构造方法没有意义,那么在创建子类对象时需要先调用父类的构造方法。
4.抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)