首页 百科知识 抽象方法与抽象类

抽象方法与抽象类

时间:2022-04-09 百科知识 版权反馈
【摘要】:5.4.1 抽象方法与抽象类抽象方法是abstract修饰的方法,是只有返回值类型、方法名、方法参数而不定义方法体的一种方法。抽象类的定义格式为:说明:抽象类可以没有抽象方法,但抽象方法必须定义在抽象类中。抽象类一般含有抽象方法,需要子类继承。这样,抽象方法display()分别有3个不同的实现,存在于这3个类中。模仿例5-9:使用抽象方法和抽象类,编程实现图5-4所示的类层次结构图。

5.4.1 抽象方法与抽象类

抽象方法是abstract修饰的方法,是只有返回值类型、方法名、方法参数而不定义方法体的一种方法。抽象方法的定义格式是:

abstract返回类型方法名(形参表);

说明:用一个分号代替方法体的定义。抽象类是不能生成对象(即不能用new实例化一个对象)的类。抽象类一般含有抽象方法,它的意义在于继承。

总之,抽象类不能实例化,必须被继承;抽象方法必须被覆盖。抽象类的定义格式为:

说明:(1)抽象类可以没有抽象方法,但抽象方法必须定义在抽象类中。

(2)抽象类一般含有抽象方法,需要子类继承。一个抽象类的子类,如果不是抽象类,则它必须覆盖实现其父类(抽象类)中的所有抽象方法。否则,该子类只能是抽象类。

(3)抽象类不仅可以含有抽象方法,而且可以含有非抽象方法和成员变量,以及构造方法(可让子类初始化父类的成员变量)。

(4)抽象类不能定义为private、final和static类型。

(5)没有抽象的构造方法。

【例5-9】 使用抽象方法和抽象类,编程实现图5-3所示的类层次结构图。

图5-3 类的层次结构图

程序运行结果如下:

分析与思考:由于抽象类Shape不能用new实例化一个对象,所以,它必须被继承。Circle类、Rectangle类和Triangle类继承了Shape类,并且覆盖实现其父类中的所有抽象方法。这样,抽象方法display()分别有3个不同的实现,存在于这3个类中。因此,分别创建这3个类对象,通过对象执行各自的display()方法。

模仿例5-9:使用抽象方法和抽象类,编程实现图5-4所示的类层次结构图。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈