Python_基础_OOP

class Base:
    pass

class MyClass(Base):
    def run(self):
        print('MyClass run')
        
class MyClass2(Base):
    def run(self):
        print('MyClass2 run')
        
# 多态
m = MyClass()
m2 = MyClass2()
m.run()
m2.run()
print('')

print(isinstance(m, MyClass))
print(issubclass(MyClass2, Base))
print('')



def duck(d):
    d.run()

class Man:
    def run(self):
        print('man run')

class Monkey:
    def run(self):
        print('monkey run')

duck(Man())
duck(Monkey())


构造函数, 重写构造函数:

#构造函数
class Base:
    def __init__(self):
        self.name = 'brando'

base = Base()
print (base.name)

#通过MRO用父类的构造函数.
class AA(Base):
    def __init__(self):
        super(AA, self).__init__()

aa = AA()
print (aa.name)        
        
#通过父类名称直接调用父类构造函数.
class BB(Base):
    def __init__(self):
        Base.__init__(self)

bb = BB()
print (bb.name)

#重写父类构造函数.
class CC(Base):
    def __init__(self):
        self.name = 'CC'

cc = CC()
print (cc.name)












猜你喜欢

转载自blog.csdn.net/lyq19870515/article/details/80075635