# 定义父类Cat
class Cat:
# 父类构造方法,初始化属性
def __init__(self, color):
self.color = color # 公有属性
self.__age = 2 # 私有属性(子类无法直接访问)
# 公有方法
def walk(self):
print("走路~")
# 私有方法(子类无法直接调用)
def __test(self):
print("我是私有方法")
# 定义子类ScottishFold,继承自Cat
class ScottishFold(Cat):
# 子类构造方法(可扩展父类属性)
def __init__(self, color, name):
# 调用父类的构造方法,初始化继承的属性
super().__init__(color)
self.name = name # 子类新增属性
# 主程序逻辑
if __name__ == "__main__":
# 创建子类对象
fold = ScottishFold("灰色", "折耳猫")
# 子类访问从父类继承的公有属性
print(f"这是一只{fold.color}的{fold.name}")
# 子类调用从父类继承的公有方法
fold.walk()
# 以下代码会报错(演示私有成员的访问限制)
# print(fold.__age) # 无法访问父类私有属性
# fold.__test() # 无法调用父类私有方法
```
```