zoukankan      html  css  js  c++  java
  • 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'

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

  • 相关阅读:
    穷举字符串的一种算法
    使用VirtualBox SDK之初步编译
    Install Shield 中判断安装还是卸载
    [转] win32内核程序中进程的pid,handle,eprocess之间相互转换的方法
    如何做PHD (1)
    在TFS 2010中使用邮件提醒功能(Email Notification)
    Chrome的Awesome Screenshot的插件离线下载
    Visual Studio 2010下生成Crypto++ lib
    VirtualBox开发环境的搭建详解
    VC版PwdHash
  • 原文地址:https://www.cnblogs.com/zyy98877/p/8575483.html
Copyright © 2011-2022 走看看