Python高级学习第一课(类、继承、多态)
- 类
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。而在类中定义的函数则成为方法。
**定义类的方法:**使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:
class ClassName:
'类的帮助信息' #类文档字符串
class_suite #类体
类的帮助信息可以通过ClassName.__doc__查看。
class_suite 由类成员,方法,数据属性组成。
- 继承
一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
继承语法:
class 派生类名(基类名)
...
在python中继承中的一些特点:
1)如果在子类中需要父类的构造方法就需要显式的调用父类的构造方法,或者不重写父类的构造方法。详细说明可查看: python 子类继承父类构造函数说明。
2)在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数
3)Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。
如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。
语法:
派生类的声明,与他们的父类类似,继承的基类列表跟在类名之后,如下所示:
class SubClassName (ParentClass1[, ParentClass2, ...]):
...
- 多态
面向对象的三大特征:封装,继承,多态
而多态的概念:(以封装和继承为前提)不同的子类调用相同的方法,产生不同的结果.
而使用多态,必须满足以下 2 个前提条件:
1)继承:多态一定是发生在子类和父类之间;
2)重写:子类重写了父类的方法。
实例:
class car: #定义一个车类
drive = '' #定义驾驶方法
def __init__(self, d): #定义构造方法
self.drive = d #定义车的驾驶方法属性
def stamp(self): #定义打印方法
print("28路公交车驾驶方法: %s。" % (self.drive))#打印出车的驾驶方法
class car1(car):#定义car1类继承父类car
def __init__(self, d): # 定义构造方法
self.drive = d # 定义车的驾驶方法属性
def stamp(self): # 定义打印方法
print("906路公交车驾驶方法: %s。" % (self.drive)) # 打印出车的驾驶方法
class car2(car):#定义car2类继承父类car
def __init__(self, d): # 定义构造方法
self.drive = d # 定义车的驾驶方法属性
def stamp(self): # 定义打印方法
print("B32路公交车驾驶方法: %s。" % (self.drive)) # 打印出车的驾驶方法
a=car('手动挡') #实例化对象a
a.stamp() #打印a公交车信息
b=car1('自动挡')#实例化对象b
b.stamp() #打印b公交车信息
c=car2('无人驾驶') #实例化对象c
c.stamp() #打印c公交车信息