python 挺抽象的
# 爷爷类
class Animal:
"""动物类"""
def __init__(self,name,age):
"""初始化方法"""
self.name = name
self.age = age
def catch(self,count):
"""抓鱼方法"""
print("小猫抓%s只鱼..."%count)
def eat(self):
"""吃方法"""
print("%s 都爱吃..." % self.name)
# 父类类
class Cat(Animal): # 单继承 子类(父类)
"""猫类"""
def catch(self):
"""抓鱼的方法"""
# 功能扩展: 在子类重写的方法中调用父类的方法,
# ①.super().重写的方法名() super()的调用方法,所在的类,必须要有继承关系
super().catch(1) # 调用父类catch()方法,不传参会报错
# ②.父类名.方法名(self) # 不推荐使用, 父类名修改后, 在调用的地方也需要修改父类名, 不方便
# Cat.catch(self)
print("波斯猫抓鱼吃...")
def sleep(self):
print("----睡方法---sleep----")
# 孙子类
class BoSiMao(Cat): # 单继承 子类(父类)
"""波斯猫类"""
def catch(self):
"""抓鱼的方法"""
# 功能扩展: 在子类重写的方法中调用父类的方法,
# ①.super().重写的方法名() super()的调用方法,所在的类,必须要有继承关系
super().catch()
print('sb')
# ②.父类名.方法名(self) # 不推荐使用, 父类名修改后, 在调用的地方也需要修改父类名, 不方便
# Cat.catch(self)
# 使用波斯猫类模板创建对象
bsm = BoSiMao('波斯猫',2) # 由于孙类继承爷类初始化方法,创建孙类对象会自动调用,所以必须传参
# 子类重写了父类的方法后, 调用方法时,调用的是自己重写后的方法
bsm.catch()
#GE#