您的位置:首页 > 其它

关于抽象类的几个注意点

2017-06-07 16:34 162 查看
上篇博客具体的说明了抽象类,以及为什么使用抽象类,现在就说一下关于抽象类的几个注意点:

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: