
下面实现一个类继承的小程序,下面一边结合代码一边介绍相关继承的知识。例子以车、汽车为例,车为父类、汽车为子类。
一、定义父类Vehicle
1 2 3 4 5 6 7 |
|
二、定义子类Car
1 2 3 4 5 6 |
|
子类内首先重写了构造方法,注意:
1.首先调用了超类的构造方法,为了说明超类方法的调用,代码将三种调用超类构造方法都实现了,实际上只要有一种就够了;
2.超类构造方法中初始化了轮子数、动力以及总行驶里程。子类调用超类构造方法后,对于汽车又初始化了油量和每公里油耗。?
1 2 3 4 5 6 |
|
子类重写了父类的drive方法,本次只用了一种老猿推荐的方式调用父类的drive方法,重写的方法内根据油量确认了实际驾驶里程之后调用了父类的drive方法,同时对油量进行了调整,输出了一些车况信息,其中调用了父类的gettotaldistance()方法。
1 2 3 |
|
实现子类独有的加油方法,父类的车可以是畜力或人力等其他方式驱动就没有这个方法。
1 2 3 |
|
实现子类独有的是否需要加油判断方法。
1 2 3 |
|
实现子类独有的输出车况的方法,其中调用了父类的gettotaldistance()方法。
到此为止整个子类的代码实现完成,它完全继承了父类方法gettotaldistance,采用重写+父类调用方式实现了drive和构造方法的继承,并实现了needoiling、oiling两个子类独有的方法,其实例变量self.wheelcount,self.power,self.totaldistance是从父类继承。
三、调用的代码
下面是使用该类定义的一个实例,
1 2 3 4 5 6 7 8 |
|
四、 上述例子的完整源代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|