关于抽象类的几个注意点

xiaoxiao2021-02-28  117

上篇博客具体的说明了抽象类,以及为什么使用抽象类,现在就说一下关于抽象类的几个注意点: 1、抽象方法不能包含在非抽象类中。如果抽象父类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象的。换句话说,在抽象类扩展的非抽象类中,必须实现所有的抽象方法。还要注意到,抽象类是非静的。 2、抽象类是不能使用new关键字来初始化的。但是,任然可以定义它的构造方法,这个构造方法在它的子类的构造方法中调用。例如Object是具体的,GeometricObject类的构造方法在Circle和Rectange类中调用。 3、包含抽象对象的类必须是抽象的。但是,可以定义一个不包含抽象方法的抽象类。在这种情况下,不能使用new操作符创建该类的实例。这种类是用来定义新子类的基类的。 4、即使子类的父类是具体的,这个子类也可以是抽象的。例如,Object是具体的,GeometricObject可以是抽象的。 5、子类可以覆盖父类的方法,并且把它定义为abstract。这是很少见 的,但是它在当父类的方法实现在子类中不合法是很有用的。在这种情况下,子类必须定义为abstract. 6、不能使用new操作符来从抽象类创建一个实例,但是抽象类可以作为一种数据类型。因此,下面的语句是创建一个元素是GeometricObject类型的数组,这个语句是正确的。

GeometricObject[] objects = new GeometricObject[10];

然后可以创建一个GeometricObject的实例,并将它引用赋值给数组,如下所示:

objects[0] = new Circle;
转载请注明原文地址: https://www.6miu.com/read-51547.html

最新回复(0)