习题 42: 对象、类、以及从属关系
从整个计算机科学的角度来说,对象是对客观事物的抽象,类是对对象的抽象,大类是对小类的抽象。类和对象都是一种抽象的数据类型。
对象(Object):是指在应用问题中出现的各种实体、事件和规格说明等,它是由一组属性和在这组值上的一组服务(这里的服务指的是操作,就是我们写在类里的函数所提供的功能)构成的,其中属性值确定了对象的状态。
类(Class):把具有相同属性和服务的对象归到同一类,而把一个类中的的每一个对象称为该类的一个实例(Instance),它们具有相同的服务。
继承:面向对象方法最有特色的方面。
继承性(Inheritance)是指,在某种情况下,一个类会有“子类”。子类比原本的类(称为父类)要更加具体化、定制化。
在书中,作者举了鱼和泥鳅以及小方的例子,鱼是一个类,泥鳅也是一个类,小方是泥鳅的实例(对象),泥鳅是鱼的实例(或者更准确的说是子类)。
贴代码:标明它是“is-a”还是“has-a”的关系,并讲明白这个关系是什么,记住,“是啥”指的是鱼和泥鳅的关系,而“有啥”指的是泥鳅和鳃的关系。
## Animal is-a object class(yes, sort of confusing) look at the extra credit
class Animal(object):
pass
## Dog is-a Animal class
class Dog(Animal):
def __init__(self, name):
## Dog has-a name
self.name = name
## Cat is-a Animal class
class Cat(Animal):
def __init__(self, name):
## Cat has-a name