2020-11-18 继承、多态

博客介绍了继承的概念,即子类继承父类共性,利于代码复用,通过继承创建的新类为子类,被继承的为父类。还指出在程序中继承是class间的关系。此外提到Python本质上无真正多态思路,只有形式上的多态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 所谓继承指提供了同一类对象共性的处理方法,子类继承父类共性的东西。 这样有利于代码的复用性,即子类拥有父类的方法。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。通俗讲就是:父类的是子类的,子类的还是子类的。
  • 在程序中,继承指的是class与class之间的关系继承是一种关系,必须存在两个class才能产生这种关系;被继承的class称为父类,继承的class称为子类。
  • python中本质上是没有真正多态这种思路,只是形式上有这样一个多态的思路。
#继承   ↓     ↓     ↓
class Adef __init__(self):
        self.name = 'aaa'
     def test(self):
        print('superTest...')
class B(A):
     def __init__(self):
        self.name = 'bbb'
     def test(self):
        print('subTeat...')
B = b()
print(B.name)
B.test()
#  ↑     ↑     ↑

#当派生类重写了基类的方法时就实现了多态性。(子类重写父类方法)
#多态  ↓     ↓     ↓
class USB:
    def __init__(self,name):
        self.__name = name

    def setName(self,name):
        self.__name = name

    def getName(self):
        return self.__name

    def start(self):
        print(self.__name+'USB连接成功!')

    def stop(self):
        print(self.__name+'USB删除成功!')

class UPan(USB):
    def __init__(self,name):
        super(UPan,self).__init__(name)

    def start(self):
        print(self.getName+'USB连接成功!')

    def stop(self):
        print(self.getName+'USB删除成功!')

class Phone(USB):
    def __init__(self,name):
        super(Phone,self).__init__(name)

    def start(self):
        print(self.getName+'USB连接成功!')

    def stop(self):
        print(self.getName+'USB删除成功!')

class Camare(USB):
    def __init__(self,name):
        super(Camare,self).__init__(name)

    def start(self):
        print(self.getName+'USB连接成功!')

    def stop(self):
        print(self.getName+'USB删除成功!')

class Computer(object):

    def __init__(self,name):
        self.name = name

    def startUSB(self,USB):
        USB.start()

    def stopUSB(self,USB):
        USB.stop

def main():

    Computer = Computer('联想')
    Phone = Phone('vivo x9splus')
    Camare = Camare('索尼相机')
    UPan = UPan('金士顿')

    Computer.startUSB(Phone)
    Computer.startUSB(Camare)
    Computer.startUSB(UPan)

    Computer.stopUSB(Phone)
    Computer.stopUSB(Camare)
    Computer.stopUSB(UPan)


if __name__ == '__main__':
    main()

# ↑     ↑     ↑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值