python

23 阅读1分钟
# 定义父类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()      # 无法调用父类私有方法
```
```