类成员的继承和重写
- 成员继承:子类继承了父类除构造方法之外的所有成员。
- 方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为“重写”
【案例】继承和重写的案例
class Person:
def __init__(self, name, age):
self.__name = name
self.age = age
def say_age(self):
print('{}的年龄是:{}'.format(self.__name, self.age))
def say_name(self):
print('我的名字是:{}'.format(self.__name))
class Student(Person):
def __init__(self, name, age, score):
Person.__init__(self, name, age) # 这里Student类的构造函数(也称为构造器)显式调用了父类的构造器。
self.score = score
def say_score(self):
print('{}的分数是:{}'.format(self._Person__name, self.score)) # 这里我试了下父类的私有属性能不能在子类定义函数时用父类中的调用方法调用,以及应该通过什么方式来调用。
def say_name(self):
print('老师好,我的名字叫{}。'.format(self._Person__name)) # 覆盖(重写)了从父类继承下来的方法。
s1 = Student('张三', 19, 68)
s1.say_name()
s1.say_score()
s1.say_age()
运行结果: