coding:utf-8
面向对象编程的三个基本特征:继承、多态、封装。
函数只是封装的最基本单位,而类和对象则是属于更高级的封装方式,在类中封装属性用于保存数据,在类中封装函数用于操作数据,不同的功能和逻辑可以封装成不同的函数。
继承中耦合性太强。
继承的优势:父类和子类,可以更好的实现代码的重用。
1>子类通过继承父类,子类可以拥有父类的所有属性和函数,子类不需要重复声明;父类的对象是不能调用子类的属性和方法的。该继承属于单向继承。
2>当父类的属性或者函数不符合子类需求的时候,子类可以重写父类属性和方法或者定义一些新的方法。
object: 该类是所有的类的根类,所有类的形成都是基于object类完成的。
如果声明的某一个类,没有特别指定父类,一般都继承于object。
Animal类是子类,object是父类
class Animal(object):
def __init__(self, name, color):
self.name = name
self.color = color
def run(self):
print 'run().........'
声明一个类继承于Animal类
class Dog(Animal):
def eat(self):
print 'eat()-------'
class Cat(Animal):
pass
Dog()类中,并没有声明_init_()初始化函数,但是,由于Dog类继承于Animal类,所以,Dog()类的对象去执行了父类Animal的初始化函数,在创建Dog()类对象时,必须指定_init_()函数中的实参。
dog = Dog('花花', 'yellow')
print dog.run()
print '狗名字:',dog.name
print '狗颜色:',dog.color
cat = Cat('花花猫', 'red')
print cat.run()
print '猫名字:',cat.name
print '猫颜色:',cat.color
# ani = Animal('动物', '黑色')
# ani.eat()