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

liftword4个月前 (01-07)技术文章44
# 定义一个基础类 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中创建类和对象

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

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

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

一文搞懂 Python 中的类和对象

Python 是一种面向对象的编程语言。这意味着几乎所有代码都可以使用称为“类”的特殊结构实现。什么是类和对象类:用户定义的数据结构,是用于创建对象的模板。使用类,您可以根据需要创建任意数量的对象。对...

python之类的定义和对象创建篇

1,类的定义 - 类和对象都是现实生活中或程序中的内容抽象。 - 实际上所有事物都有两部分构成 1,数据(属性) 2,行为(方法) - 在类的代码块中,我们可以定义变量和函数 变...

python面向对象-类的定义

类即类别、种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体在程序中:务必保证先定义类,后产生对象这与函数的使用是类似的,先定义函数,后调用函数,类...

Python 类和方法

Python 类和方法Python 类创建、属性和方法具体是如何体现的,代码中如何设计,请继续看下去。蟒蛇类解释在 Python 中使用 OOP ?什么是 Python 类?Python 类创建Pyt...