美文网首页
(十二)类<4>多态

(十二)类<4>多态

作者: 费云帆 | 来源:发表于2019-01-17 14:28 被阅读0次

1.大师的例子:

# Speaking pets in python

class Pet:
    def speak(self):pass

class Cat(Pet):
    def speak(self):
        print("meow!")

class Dog(Pet):
    def speak(self):
        print("woof!")

def command(pet):
    pet.speak()

pets=[Cat(),Dog()]

for pet in pets:
    command(pet)
# 结论是Pet类是多余的
>>>
meow!
woof!

大师修改的例子:

# Speaking pets in python,but without base classes

"""class Pet:
    def speak(self):pass"""

class Cat:
    def speak(self):
        print("meow!")

class Dog:
    def speak(self):
        print("woof!")

class Bob:
    def bow(self):
        print("Thank you,thank you!")
    def speak(self):
        print("Hello,welcome to the neighborhand!")
    def drive(self):
        print("Beep,beep!")
def command(pet):
    pet.speak()

pets=[Cat(),Dog(),Bob()]
for pet in pets:
    command(pet)
>>>
meow!
woof!
Hello,welcome to the neighborhand!

"""
不仅去掉了没什么用的类 Pet ,又增加了一个新的类 Bob ,这个类根本不是
如 Cat 和 Dog 那样的类型,只是它碰巧也有一个名字为 speak() 的方法罢了。但是,也依然
能够在 command() 函数中被调用。
这就是Python中的多态特点
"""

相关文章

  • (十二)类<4>多态

    1.大师的例子: 大师修改的例子:

  • 多态、final关键字、权限修饰符与内部类

    第4节 多态 多态的概述 多态的格式与使用 代码当中提现多态性 其实就是一句话:父类引用指向子类对象格式:父类名称...

  • 02-C#基础

    继承 1. sealed表示类不能被继承: 2. base: 3. 多态: 4. 抽象类:

  • Java中的多态详解

    一、多态的概念 多态分为类的多态和方法的多态,类的多态就是一个类型可以有不同的表现形态,什么样的类型才会具备多态呢...

  • Java中多态

    一、多态详解 Java 多态目录:1.定义2.优点3.三个必要条件-继承、重写、父类引用指向子类对象4.虚方法4....

  • 多态

    多态性(简化代码) - 多态的规则:里氏替换原则(子类替换父类方法:只是多态表现);多态的特性:父类保存了子类的对...

  • 多态

    一、多态 1、引用多态父类的引用指向本类的对象父类的引用指向子类的对象 继承是实现多态的基础 2、方法多态创建本类...

  • Java - Part 4

    一、多态 多态:是一个继承了父类的子类可以看作是它的父类。1、多态的条件 要有子父类关系 要有方法重写 要有父类引...

  • 待理解的概念

    多态 继承 封装:类 抽象:类 重载

  • Day05 Java面向对象

    基础知识 1 面向对象三大特征:封装、继承、多态2 类和类之间的关系: 3 类的构成:属性、方法4 类对象的内存解...

网友评论

      本文标题:(十二)类<4>多态

      本文链接:https://www.haomeiwen.com/subject/cjlidqtx.html