Python类的继承
关于面向对象,一定要说到类这一结构.
这一节主要介绍Python类的继承.

比如下面的代码,一个是父类Father,
另一个是子类Son.
其中子类Son继承了父类Father.并且没有经过修改.
所以说子类和父类基本上就是一个类.
运行结果如下


从中可以看出,子类完全继承了父类的所有特性,
包括构造函数中输出”成年人”,还有父类里面的起床时间7:00.
但是我们经常不会这样用,
因为我们之所以构造子类,就是为了在父类的基础上做修改,产生一个区别于父类的类型.
比如:
1 我们可以在子类中添加新的方法.让他拥有更多的功能.
2 可以重写构造函数,因为父类自带的构造函数并不一定适用于子类,比如上面的例子,父类都是”成年人”,但是子类就不一定是成年人了,这里就需要,进行重写.
3 可以重写父类中其他的方法,比如父类中weekend这个方法,就是周末,父亲”加班”,这可能会不适合子类,可以修改成子类”放假”.
4 我们想要在父类的构造函数中添加一些东西,不完全改变它,比如”成年人”,然后在这个基础上,添加”没有长胡子”,就可以用super关键词.在原来的构造函数基础上,添加新的东西.

下面开始一一演示:

1 在子类中添加新的方法,
输出:


2 重写构造函数:
输出:

可以看到,重写了构造函数后,运行子类,就不会再调用父类的构造函数了.
如果不重写,就会自动调用父类的构造函数.

3 改写父类的某些方法,
比如父类的周末weekend是加班,但是子类根据实际情况不是”加班”而是”休假”
所以进行修改:
运行:


4 进行构造函数的继承,
上面的原父类,构造函数会输出”成年人”,
如果创建子类,就会直接调用父类的构造函数,从而输出”成年人”,
这显然是不标准的,因为有些儿子son是”成年人”,有些是”未成年人”.
所以子类需要对父类的构造函数进行补充.这里会用到super关键字.
运行:
