码迷,mamicode.com
首页 > 编程语言 > 详细

python学习小结5:封装、继承、多态

时间:2015-01-28 19:16:41      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:

面向对象程序设计中的类有三大特性: 继承封装多态

继承以普通的类为基础建立专门的类对象

封装对外部世界隐藏对象的工作细节

多态可对不同类的对象使用同样的操作

在Python中类的继承定义基本形式如下:

#父类
class superClassName:
    block

#子类
class subClassName(superClassName):
    block

 说明:在定义一个类的时候,可以在类名后面紧跟一对括号,在括号中指定所继承的父类,如果有多个父类,多个父类名之间用逗号隔开。

class UniversityMember:                     # 定义一个父类 UniversityMember

    def __init__(self,name,age):
        self.name = name
        self.age = age

    def getName(self):
        return self.name

    def getAge(self):
        return self.age

class Student(UniversityMember):                     # 定义一个子 Student

    def __init__(self,name,age,sno,mark):
        UniversityMember.__init__(self,name,age)     # 注意要显示调用父类构造方法,并传递参数self
        self.sno = sno                               # Student类有 sno,mark两个属性
        self.mark = mark

    def getSno(self):
        return self.sno

    def getMark(self):
        return self.mark

class Teacher(UniversityMember):                   # 定义一个子类 Teacher

    def __init__(self,name,age,tno,salary):
        UniversityMember.__init__(self,name,age)
        self.tno = tno                             # Teacher类有 tno,salary两个属性
        self.salary = salary

    def getTno(self):
        return self.tno

    def getSalary(self):
        return self.salary

 从上面的代码中可以看到:

      1)在Python中,如果父类和子类都重新定义了构造方法__init( )__,在进行子类实例化的时候,子类的构造方法不会自动调用父类的构造方法,必须在子类中显示调用。

  2)如果需要在子类中调用父类的方法,需要以   父类名.方法  这种方式调用,以这种方式调用的时候,注意要传递 self 参数过去。

  对于继承关系,子类继承了父类所有的公有属性和方法,可以在子类中通过父类名来调用,而对于私有的属性和方法,子类是不进行继承的,因此在子类中是无法通过父类名来访问的。

 

python学习小结5:封装、继承、多态

标签:

原文地址:http://www.cnblogs.com/wakey/p/4256486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!