python学习小结5:封装、继承、多态
2015-01-28 17:33
141 查看
面向对象程序设计中的类有三大特性: 继承,封装,多态
[b]继承:以普通的类为基础建立专门的类对象[/b]
[b]封装:对外部世界隐藏对象的工作细节[/b]
[b]多态:可对不同类的对象使用同样的操作[/b]
在Python中类的继承定义基本形式如下:
说明:在定义一个类的时候,可以在类名后面紧跟一对括号,在括号中指定所继承的父类,如果有多个父类,多个父类名之间用逗号隔开。
从上面的代码中可以看到:
1)在Python中,如果父类和子类都重新定义了构造方法__init( )__,在进行子类实例化的时候,子类的构造方法不会自动调用父类的构造方法,必须在子类中显示调用。
2)如果需要在子类中调用父类的方法,需要以 父类名.方法 这种方式调用,以这种方式调用的时候,注意要传递 self 参数过去。
对于继承关系,子类继承了父类所有的公有属性和方法,可以在子类中通过父类名来调用,而对于私有的属性和方法,子类是不进行继承的,因此在子类中是无法通过父类名来访问的。
[b]继承:以普通的类为基础建立专门的类对象[/b]
[b]封装:对外部世界隐藏对象的工作细节[/b]
[b]多态:可对不同类的对象使用同样的操作[/b]
在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:封装、继承、多态
- Python学习之面向对象(封装、继承、多态)
- Python学习记录七---继承、多态和封装
- Python 学习笔记 - 面向对象(封装,继承和多态)
- python学习笔记14(多态、封装、继承)
- 初学Python的学习笔记8----面向对象、数据封装、访问限制、继承和多态
- python学习笔记14(多态、封装、继承)
- 【python学习笔记】Python面向对象的理解(封装,继承,多态)
- 黑马程序员——OC学习小结------封装,继承,多态
- Python 学习笔记 - 面向对象(封装,继承和多态)
- 黑马程序员-OC学习笔记-----封装、继承、多态
- 浅谈学习C++时用到的【封装继承多态】三个概念
- 黑马程序员学习日记 (四)面向对象三大特征: 封装 继承 多态
- OC学习篇之---类的三大特性(封装,继承,多态)
- 黑马程序员—Objective-C学习—封装、继承、多态
- 【Objective-C学习笔记】OC三大特性:封装、继承、多态
- C# 学习历程——类的封装,继承与多态
- JAVA学习笔记之-封装,继承,多态 总结
- Java学习--封装、继承、多态
- 菜鸟的学习之路(3) —java 面向对象程序设计的封装、继承和多态