码迷,mamicode.com
首页 > 编程语言 > 详细

python(7)–类的多态实现

时间:2016-04-05 12:32:29      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

 

 

第一步: 先定义三个类:

class Animal:
    def __init__(self, name):
        self.name = name
    
    #这个方法的意思是,如果继承该类,就得自己写talk方法,如果不写,就抛出异常
    def talk(self):
        raise NotImplementedError("subclass must implement abstract method")

class Cat(Animal):
    def talk(self):
        return "Meow!"

class Dog(Animal):
    def talk(self):
        return "woof! woof!"

第二步: 第一种方法实现多态:

定义一个函数,将类实例传入函数,在函数内执行类实例方法:

def animal_talk(obj):
    print(obj.talk())

cat = Cat("Missy")
dog = Dog("lassie")

animal_talk(cat)
animal_talk(dog)

第三步:第二种方法实现多态:

将类实例放入列表,然后循环列表

animals = [Cat("Missy"), Dog("lassie")]

for i in animals:
    print("%s:%s" % (i.name, i.talk()))

python(7)–类的多态实现

标签:

原文地址:http://www.cnblogs.com/huangxm/p/5354293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!