is-a&has-a

来源:互联网 发布:java 线程锁活锁 死锁 编辑:程序博客网 时间:2024/05/18 01:42

is-a&has-a

在面向对象的语言中常常遇到is-ahas-a的说法,看到总是一头雾水。

is-a

常常指的是类与类之间的关系,例如动物和小狗的关系,小狗is-a动物。

class Animal(object):    pass## Dog is-a Animalclass Dog(Animal):    pass

has-a

常用于知道对象的与成员的关系,例如小狗可以汪汪叫,可是说小狗has a汪汪叫的属性。

class Dog(Animal):    def wow(self):         print "Dog can WOW." # Dog has a 'wow'