Python类的定义、封装、继承和多态

# 定义一个基础类 Animal,用于表示动物
class Animal:

    # 构造函数,用于初始化动物的名称和年龄  
    def __init__(self, name, age):
        self.__name = name  # 将名称设置为私有属性,防止外部直接访问
        self.__age = age  # 将年龄设置为私有属性,防止外部直接访问

    # 以下是 Getter 和 Setter 方法,用于安全地访问和修改私有属性  

    # 获取动物名称的方法  
    def get_name(self):
        return self.__name

        # 设置动物名称的方法

    def set_name(self, name):
        self.__name = name

        # 获取动物年龄的方法

    def get_age(self):
        return self.__age

        # 设置动物年龄的方法,确保年龄为正数

    def set_age(self, age):
        if age > 0:
            self.__age = age

            # 定义一个抽象方法 make_sound,子类需要重写此方法以提供具体实现

    def make_sound(self):
        pass  # 此处不实现,仅作为接口  


# 定义一个 Dog 类,继承自 Animal 类,表示狗
class Dog(Animal):

    # 构造函数,初始化狗的名称、年龄和品种  
    def __init__(self, name, age, breed):
        super().__init__(name, age)  # 调用父类构造函数初始化名称和年龄  
        self.__breed = breed  # 将品种设置为私有属性  

    # 获取狗品种的方法  
    def get_breed(self):
        return self.__breed

        # 设置狗品种的方法

    def set_breed(self, breed):
        self.__breed = breed

        # 重写 make_sound 方法,提供狗叫的具体实现

    def make_sound(self):
        return "Woof!"

    # 定义一个 Cat 类,继承自 Animal 类,表示猫


class Cat(Animal):

    # 构造函数,初始化猫的名称、年龄和颜色  
    def __init__(self, name, age, color):
        super().__init__(name, age)  # 调用父类构造函数初始化名称和年龄  
        self.__color = color  # 将颜色设置为私有属性  

    # 获取猫颜色的方法  
    def get_color(self):
        return self.__color

        # 设置猫颜色的方法

    def set_color(self, color):
        self.__color = color

        # 重写 make_sound 方法,提供猫叫的具体实现

    def make_sound(self):
        return "Meow!"

    # 以下是示例代码,用于展示如何使用上述类


# 如果当前脚本作为主程序运行
if __name__ == "__main__":

    # 创建一个 Dog 对象,并初始化名称、年龄和品种  
    dog = Dog("Buddy", 5, "Golden Retriever")

    # 创建一个 Cat 对象,并初始化名称、年龄和颜色  
    cat = Cat("Whiskers", 3, "Black")

    # 展示封装的使用  
    print(f"Dog's name: {dog.get_name()}")  # 输出狗的名称  
    dog.set_age(6)  # 修改狗的年龄  
    print(f"Dog's age: {dog.get_age()}")  # 输出狗的年龄  

    print(f"Cat's name: {cat.get_name()}")  # 输出猫的名称  
    print(f"Cat's color: {cat.get_color()}")  # 输出猫的颜色  

    # 展示多态的使用  
    animals = [dog, cat]  # 创建一个包含狗和猫的列表  
    for animal in animals:
        # 调用每个动物的 make_sound 方法,输出不同的叫声  
        print(f"{animal.get_name()} says {animal.make_sound()}")

这些注释详细解释了每个类和方法的作用,以及示例代码的功能,有助于初学者理解代码的结构和面向对象编程的基本概念。

相关文章

python入门038:创建类

一、面向对象编程1、面向对象编程(Object-oriented Programming简称 OOP)python 是面向对象的编程语言。面向对象编程是一种封装代码的方法。代码封装,其实就是隐藏实现功...

python创建类的方法实例

创建一个学生类:数据:(姓名,姓别,年龄 ,分数)形为:打印信息'''class Studons:def __init__(self,name,xibie,nianling,f...

一日一技:在Python中创建类和对象

要创建一个类,请使用关键字class,如下:class MyClass: x = 5 print(MyClass)打印出结果:<class '__main__.MyClass...

一、Python 中类的定义、创建、使用

Python 界的领袖 Tim Peters 说的:元类就是深度的魔法,99% 的用户应该根本不必为此操心。如果你想搞清楚究竟是否需要用到元类,那么你就不需要它。那些实际用到元类的人都非常清楚地知道他...

python入门040:根据类创建实例

一、创建实例1、类的实例化定义的类只有进行实例化,也就是使用该类创建实例(对象)之后,才能得到使用。创建类实例(对象)的过程,又称为类的实例化。其语法格式为:类名(参数)在上面的程序中,我们首先创建了...

Python-15-类的定义和使用

类是什么?官方定义类提供了一种组合数据和功能的方法。创建一个新类意味着创建一个新的对象 类型,从而允许创建一个该类型的新 实例 。每个类的实例可以拥有保存自己状态的属性。一个类的实例也可以有改变自己状...