子类继承父类的成员属性和成员方法后,如果对其“不满意”,可以进行复写。即:在子类中重新定义同名的属性或方法即可。
一旦复写父类成员,那么类对象调用成员的时候,就会调用复写后的新成员
如果需要使用被复写的父类的成员,需要特殊的调用方式:
方式1:
调用父类成员
使用成员变量:父类名.成员变量
使用成员方法:父类名.成员方法(self)
方式2:
使用super()调用父类成员
使用成员变量:super().成员变量
使用成员方法:super().成员方法()
只能在子类内调用父类的同名成员。
子类的类对象直接调用会调用子类复写的成员
总结:
- 复写表示:
对父类的成员属性或成员方法进行重新定义 - 复写的语法:
在子类中重新实现同名成员方法或成员属性即可 - 在子类中,如何调用父类成员
注意:只可以在子类内部调用父类的同名成员,子类的实体类对象调用默认是调用子类复写的
class Phone:
imei=None
prducer="ITCASE"
def cal_by_5g(self):
print("使用5g网络进行通话")
#定义子类,复写父类成员
class MyPhone(Phone):
prducer = "黑马"
def cal_by_5g(self):
print("开启cpu单核模式,确保通话时候省电")
#方式一
print("父类的厂商是:",Phone.prducer)
Phone.cal_by_5g(self)
#方式二
print("父类的厂商是:",super().prducer)
super().cal_by_5g()
print("关闭cpu单核模式")
phone=MyPhone()
phone.cal_by_5g()
print(phone.prducer)
#在子类中调用父类成员