首页 理论教育 Java语言程序设计-抽象类实现及重写

Java语言程序设计-抽象类实现及重写

时间:2023-10-18 理论教育 版权反馈
【摘要】:用关键字abstract修饰的类称为抽象类。包含抽象方法的类一定是抽象类。如果一个类是某个抽象类的子类,那么该子类既可以抽象类,也可以是非抽象类。 设计Vehicle抽象类表示运输工具,有移动、加速、减速、停止方法。设计货车类Van和轿车Car类实现抽象类,并重写抽象类中所有的抽象方法。抽象类Vehicle的内容,代码如下:第2行代码中的abstract关键字说明Vehicle类是一个抽象类,第3~6行代码定义了四个抽象方法。

Java语言程序设计-抽象类实现及重写

当我们把Graph 类中的area修改为抽象方法时,Graph 类是会报错的,这是因为当把area方法修改为抽象方法时,也必须把类Graph修改为抽象类

用关键字abstract修饰的类称为抽象类。抽象类的作用类似于“模板”,通常首先给出属性或方法的格式,然后根据这些格式来派生出新的子类,最后由其子类来创建对象。

定义抽象类的一般格式如下:

有关抽象类说明如下:

(1)抽象类只能声明对象,而不能创建具体对象即不能被实例化。

(2)在抽象类中,可以包含抽象方法,也可以包含非抽象方法,也可以不包含抽象方法。

(3)包含抽象方法的类一定是抽象类。

(4)如果一个类是某个抽象类的子类,那么该子类既可以抽象类,也可以是非抽象类。

(5)当抽象类的子类是非抽象类时,必须重写父类中所有的抽象方法。

下面我们用一个例子演示抽象类及其中的抽象方法。

【例4-7】 设计Vehicle抽象类表示运输工具,有移动(move)、加速(speed Up)、减速(slow Down)、停止(stop)方法。设计货车类Van和轿车Car类实现抽象类,并重写抽象类中所有的抽象方法。(www.xing528.com)

抽象类Vehicle的内容,代码如下:

第2行代码中的abstract关键字说明Vehicle类是一个抽象类,第3~6行代码定义了四个抽象方法。

货车类Van继承了抽象类Vehicle,代码如下:

第3~5 行代码重写了父类Vehicle中的move抽象方法,第6~8 行代码重写了父类Vehicle中的speed Up抽象方法,第9~11行代码重写了父类Vehicle中的slow Down抽象方法,第12~14行代码重写了父类Vehicle中的stop抽象方法。

轿车类Car也继承了抽象类Vehicle,代码如下:

Car类中也重写了父类Vehicle中的move抽象方法、speed Up抽象方法、slow Down抽象方法和stop抽象方法。

编写测试类AbsracteClass Test,代码如下:

上述代码的运行结果如下:

第4行和第9行是将子类的对象赋值给父类的引用变量,故父类的引用变量就变成了相应子类的上转型对象,第5~8行和第10~13行代码通过上转型对象调用子类中重写的方法。

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

我要反馈