一 .子类类型使用父类数据
1. 子类中访问父类的方法
super().方法名称()
2. 子类的__init__()方法
如果子类中不写__init__()方法,直接使用父类的__init__()方法初始化数据
什么时候子类写自己的__init__()方法,子类中出现独立属性时!
3. 子类中可以重新定义从父类中继承的方法【方法名称和方法参数一致】:方法重写
方法重写:子类中重写父类中已经存在的方法
在执行过程中~如果子类中重写了方法,执行子类的方法,如果没有重写则执行父类中的方法
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def say(self):
print(self.name, "好好学习,天天向上")
def play(self):
print(self.name, "出门打麻将")
def sleep(self):
print(self.name, "嗨什么嗨,快去睡觉")
class Child(Person):
def __init__(self, name, age, gender, email, phone):
super().__init__(name, age, gender)
self.email = email
self.phone = phone
def speek(self):
"""子类的方法"""
# 访问父类的属性和方法
super().say()
def play(self):
print(self.name, "搭积木.........")
c = Child("tom", 18, "男", "youxiang@163.com", "13993886625")
c.speek() # tom 好好学习,天天向上
print(c.email) #youxiang@163.com
c.play() # tom 搭积木........
p = Person("jerry", 20, "女")
p.play() # jerry 出门打麻将
二.python中的多继承
class Son:
def xiao_shun(self):
print("百善孝为先")
class Student:
def xue_xi(self):
print("好好学习,天天向上")
class Friend:
def play(self):
print("吃喝玩乐.....")
class Person(Son, Student, Friend):
"""人的类型:继承儿子、学生、朋友"""
pass
p = Person()
# 家庭环境
if isinstance(p, Son):
p.xiao_shun() # 百善孝为先
# 学习环境中
if isinstance(p, Student):
p.xue_xi() # 好好学习,天天向上
# 朋友
if isinstance(p, Friend):
p.play() # 吃喝玩乐......
def xue_tang(person):
# 作为一个学员,在教室要好好学习
if isinstance(person, Student):
# person.play()
person.xue_xi()
xue_tang(p) # 好好学习,天天向上