2.继承性
继承:
使用场景:
1).生活层面:。。。
2).计算机层面:
两部分组成,一部分我们称为父类(基类、超类、superclass),另一部分我们称为子类(派生类、subclass),
子类可以使用父类中的成员(使用权)
继承性的好处:
1).代码复用性变强
2).代码扩展性变强
3).代码维护性变好
4).代码阅读性变好
继承性弊端:
类和类之间是一种强耦合关系
继承的好处要远远多于弊端,所以我们还是要经常使用继承的(合理),切记不能为了继承而继承
分析:
继承体系可以很庞大(呈现树状结构图),
越往上层的类,感觉越模糊,越不清晰
越往下层的类,感觉越清晰,越具体
所以得出结论,在之后的开发过程中创建父类的可能性变低,子类实例化的可能性极高
演示单继承的结构和使用:
父类:Person
子类:Teacher
class Person:
def __init__(self,name,age):
print('我是Person类的构造...')
self.name=name
self.age=age
#吃和睡
def eat(self):
print('吃一个...')
def sleep(self):
print('睡一个...')
代码:(Person),就让Teacher类和Person发生继承关系
Person:父类
Teacher:子类
class Teacher(Person):
def __init__(self,name,age,salary):
print('我是Teacher类的构造...')
self.salary=salary
'''
为了给父类Person中的name和age属性赋值,
所以我们需要在子类构造函数中显示的调用父类构造来实现
关键字:super
'''
super().__init__(name,age)
# super(Teacher, self).__init__(name,age)
# Person.__init__(self,name,age)
#教书
def teach(self):
print('教书育人...')
#实例化子类对象-->Teacher对象
t=Teacher('joy',34,10000.0)
#调用父类的属性
print(t.name,t.age)
#调用子类的属性
print(t.salary)
#调用父类函数
t.eat()
t.sleep()
#调用子类的函数
t.teach()
返回目录