一、继承,包括单继承和多继承
对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类
仅需继承父类而不必一一实现每个方法。
实例:
#coding=utf-8
class Person(object):
def __init__(self,name, age):
self.name=name
self.age = age
def get_age(self):
return self.age
def get_name(self):
return self.name
def set_age(self,age):
if age>=0 and age<=150:
self.age = age
def set_name(self,name):
self.name=name
class SchoolMember(Person):
def __init__(self,name, age,school_name):
Person.__init__(self,name, age)
self.school_name = school_name
def get_school_name(self):
return self.school_name
def set_school_name(self,school_name):
self.school_name = school_name
if __name__ == '__main__':
p=Person("wulaoshi",28)
print p.get_age()
print p.get_name()
p.set_name("laoshiwu")
p.set_age(18)
print p.get_age()
print p.get_name()
多继承实例:
实例:写多重继承房车
#coding=utf-8
class Home:
def __init__(self,area):
print "home is running"
self.area=area
def set_home(self,price):
self.price=price
def get_home(self):
return self.price
class Car:
def __init__(self,name):
print "car is running"
self.name=name
def set_car(self,price):
self.price=price
def car(self):
return Car.price
class Ch(Home,Car):
def __init__(self,area,name):
Home.__init__(self,area)
Car.__init__(self,name)
def printch(self):
return self.get_home,self.car
ch=Ch(u"北京",u"特拉斯")
print ch.printch()
注:除了子类和父类的称谓,你可能看到过 派生类 和 基类 ,他们与子类和父
类只是叫法不同而已。
二、多态:所谓多态是指同一种行为在不同的对象上有不同的表现形式。
多态—方法多态,子类继承同一个基类的方法,表现不同,如动物叫,--多态--猫叫或者狗叫
class F1:
pass
class S1(F1):
def show(self):
print 'S1.show'
class S2(F1):
def show(self):
print 'S2.show'
三、封装:属性和方法封装成一个个体,可以直接调用,而不必关心细节