(python)面向对象三大特性之多态

1、什么是多态:

    它是指同一种事物的多种形态,在程序中用继承可以表现出多态。

    多态性:可以在不考虑具体类的情况下,直接参考基类的标准来使用对象。

    但在python中推崇鸭子类型。它不但解藕合,且能建立标准。

2、为什么要用多态:

    用基类创建一套统一的规则,强制子类去遵行(用抽象类去实现)这样可以不用考虑具体类型的前提下而直接使用对象下的方法。

3、如何使用:

来看下面的一段代码。

class Animal:
    def run(self):
        pass

    def bark(self):
        pass
    
class Cat(Animal):
    def jiao(self):
        print('喵喵喵')

class Dog(Animal):
    def speak(self):
        print('汪汪汪')

class Pig(Animal):
    def han(self):
        print('哼哼哼')

c=Cat()
d=Dog()
p=Pig()
#调用不同具体动物叫的时候就用不同实现方法。
c.jiao()
d.speak()
p.han()

如上代码在调用不同具体动物叫的时候就用不同的调用方法。这样子不态好,很乱,没有规范。我们就要用多态来给它弄个规,凡是动物叫,就都用bark()来调用。这样就很清楚明了。

import abc
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractclassmethod
    def bark(self):
        pass
    @abc.abstractclassmethod
    def drink(self):
        pass
class Cat(Animal):
    def drink(self):
        print('cat is dering')
    def bark(self):
        print('cat is barking')

class Dog(Animal):
    def drink(self):
        print('dog is dering')
    def bark(self):
        print('dog is barking')
c=Cat()
d=Dog()

c.bark()
d.bark()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值