python多态与super
目录
- 多态的概念
- 多态的表现
- 多态与继承
多态的概念
- 多态(Polymorphism)
- 同名方法呈现多种行为
运算符的多态表现
- +号
- 加法:数字+数字
- 拼接:字符串+字符串
- 合并:列表+列表
函数的多态表现
- len()函数
- 可以接收字符串
- 可以接收列表
方法的多态表现
- 同名变量调用同名方法呈现多种行为
class China:
def speak(self):
print("汉语")
class Usa:
def speak(self):
print("English")
#实例化对象
cn = China()
us = Usa()
#遍历
for x in (cn,us):
x.speak()
输出结果
汉语
English
多态与继承
- 方法重写(Override):子类的方法名称与父类的相同
- 重写构造方法
- super().__init__()
-父类名.__init__(self)
class Human:
massage = "这是类的属性"
#构造方法
def __init__(self,name,age):
self.name = name
self.age = age
#实例化方法
def live(self):
print("住在地球上")
class Student(Human):
# 重写父类构造方法
def __init__(self,name,age,school):
#访问父类构造方法
# super().__init__(name,age) #super().__init__()重写父类构造方法
# super(Student,self).__init__(name,age)
Human.__init__(self,name,age) #父类名.__init__(self)重写父类构造方法
self.school = school
# 重写父类实例方法
def live(self):
print(f"住在{self.school}")
#实例化子类对象
stu = Student("哈哈",18,"jianqiao")
print(stu.name)
#访问重写的实例方法
stu.live()
输出结果
哈哈
住在jianqiao