python面向对象之封装,多态与继承

一、继承,包括单继承和多继承

对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类

仅需继承父类而不必一一实现每个方法。

实例:

#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'

三、封装:属性和方法封装成一个个体,可以直接调用,而不必关心细节

原文地址:https://www.cnblogs.com/zyy98877/p/8575483.html