Loading

关于python语言中的继承,多态,重写操作

  1. 当子类与父类存在相同的函数名时,子类的函数就会重写父类的函数。
  2. 如果还是想用父类的函数,可以通过super函数强制调用父类函数。但是当子类与父类存在相同的函数名时,子类的函数仍会重写父类的函数。
验证结论1:
class A():
    def __init__(self):
        pass
    def printf(self):
        self.train()
    def train(self):
        print("yes")
class B(A):
    def __init__(self):
        super(B, self).__init__()
    def train(self):  # 子类对父类中相同的函数进行了重写
        print("no")
#输出为no
验证结论2:
class A():
    def __init__(self):
        pass
    def printf(self):
        self.train()
    def train(self):
        print("yes")
class B(A):
    def __init__(self):
        super(B, self).__init__()
        super(B, self).train()  # 强制调用父类train
    def train(self):  # 子类对父类中相同的函数进行了重写
        print("no")
b = B() #实例化对象,走一遍初始化(__init__)函数
b.printf()
# 输出为#输出为
# yes
# no
posted @ 2021-04-29 01:35  Guang'Jun  阅读(115)  评论(0编辑  收藏  举报