jianghongz 发表于 2024-7-27 08:05:02

类的继承

# 。。。。。。。。。。。。。。继承。。。。。。。。。。。。。。。。。。。。。

# ① 子类可以继承父类的所有属性和方法,私有除外
# ② 子类可以重写和重用父类的属性和方法
# ③ 子类可以拓展新的属性和方法
# ④ 一个子类可以继承多个父类
# ⑤ 一个父类也可以被多个子类继承
# ⑥ C继承B,B继承A,C也会继承A的所有属性和方法。

# 创建父类-基类
class Person():
    def __init__(self,name,age):
      self.name = name
      self.age = age
    def __str__(self):
      return f"我叫{self.name},我{self.age}岁了。"
    def walk(self):
      print("人类都是双足行走的!")
    def speak(self):
      print("人类都会说话!")
# 创建子类-派生类
class Chinese(Person):
    def __init__(self,name,age,nationality):
      super().__init__(name,age) # 继承父类的属性
      self.nationality = nationality # 拓展新的属性
    def speak(self): # 重写父类的方法
      print(f"{self.nationality}人说{self.nationality}话")
      super().speak() # 重用父类的方法
    def like(self):# 拓展新的方法
      print(f"{self.nationality}人都喜欢吃饺子。。。")

class Japanese(Person):
    def __init__(self,name,age,nationality):
      Person.__init__(self,name,age) # 继承父类的属性
      self.nationality = nationality # 拓展新的属性
    def speak(self): # 重写父类的方法
      print(f"{self.nationality}人说{self.nationality}话")
      Person.speak(self) # 重用父类的方法
    def like(self):# 拓展新的方法
      print(f"{self.nationality}人都喜欢吃核污染的生鱼片。。。")
class Indine(Chinese,Japanese): # 一个子类继承多个父类
    def __init__(self,name,age,nationality):
      Person.__init__(self,name,age) # 继承父类的属性
      self.nationality = nationality # 拓展新的属性
    def speak(self): # 重写父类的方法
      print(f"{self.nationality}人说{self.nationality}话")
      Person.speak(self) # 重用父类的方法
    def like(self):# 拓展新的方法
      print(f"{self.nationality}人都喜欢用手吃饭。。。")
      super().like()
      Japanese.like(self)
# 创建对象   
zs = Person("张三",18)      
ls = Chinese("李四",20,"中国")
zz = Japanese("井底王八",30,"日本")
yy = Indine("安很莎",6,"印度")



页: [1]
查看完整版本: 类的继承