1 抽象类需要注意的细节:
-
抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象。
-
抽象类中,是有构造器的,其是供子类创建对象时,初始化父类成员使用的。
-
抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
-
抽象类的子类,必须重写抽象父类中所有的抽象方法,否则子类也必须定义成抽象类,编译无法通过而报错。
-
抽象类存在的意义是为了被子类继承,抽象类体现的是模板思想。
总结:
抽象类和普通类的区别就是抽象类获得了拥有抽象方法的能力,失去了创建对象实例的能力。除此之外,普通类拥有的其他成员(构造器,实例方法,静态方法等)抽象类都是具备的。
2 抽象类存在的意义
抽象类存在的意义是为了被子类继承,否则抽象类将毫无意义,抽象类体现的是模板思想,模板具体来说就是通用的东西在抽象类中已经有具体的实现(抽象类中可以有成员变量和实现方法),而模板中不能决定的东西则定义成抽象方法,让使用模板(继承抽象类的类)的类去重写抽象方法实现需求,这是典型的模板思想。