欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 073、类的三大特征初识

073、类的三大特征初识

2025/1/21 2:43:20 来源:https://blog.csdn.net/mr_five55/article/details/139971857  浏览:    关键词:073、类的三大特征初识

(1)继承

类之间可以通过继承建立父子关系,子类可以继承父类的属性和方法,并可以添加自己的特定属性和方法。如下是一个简单示例:

class Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef study(self, subject):print(f"{self.name} is studying {subject}.")# 创建Student类的对象
student = Student("Charlie", 20, "12345")
student.greet()  # 调用从父类继承的方法
student.study("Math")  # 调用子类特有的方法

(2)、封装

封装也是类的三大特征之一。它允许将数据(属性)和操作(方法)捆绑在一起,同时隐藏对象的内部实现细节。这样可以防止外部直接访问对象的内部数据,只能通过对象提供的接口(方法)来访问和修改数据。如下是一个简单示例:

class Car:def __init__(self, make, model, year):self.make = makeself.model = modelself.year = yearself.__odometer_reading = 0  # 使用双下划线开头表示私有属性def get_odometer_reading(self):return self.__odometer_readingdef update_odometer(self, mileage):if mileage >= self.__odometer_reading:self.__odometer_reading = mileageelse:print("You can't roll back an odometer!")# 创建Car类的对象
my_car = Car("Toyota", "Corolla", 2022)# 尝试直接访问私有属性(会报错)
# print(my_car.__odometer_reading)# 通过公有方法访问和修改私有属性
print(my_car.get_odometer_reading())  # 输出: 0
my_car.update_odometer(100)
print(my_car.get_odometer_reading())  # 输出: 100

在这个示例中,__odometer_reading属性被定义为私有属性,外部无法直接访问,只能通过公有方法get_odometer_reading()update_odometer()来访问和修改属性的值,从而实现了封装。

(3)、多态

多态是类的三大特征的另外一个,它允许不同类的对象对同一个方法做出不同的响应。在多态中,同一个方法名可以在不同的类中有不同的实现,从而提高了代码的灵活性和可扩展性。

class Animal:def speak(self):passclass Dog(Animal):def speak(self):return "Woof!"class Cat(Animal):def speak(self):return "Meow!"# 创建不同类的对象
dog = Dog()
cat = Cat()# 调用相同的方法,但根据对象的类型会有不同的行为
print(dog.speak())  # 输出: Woof!
print(cat.speak())  # 输出: Meow!

在这个示例中,Animal类有一个speak()方法,而Dog类和Cat类分别继承Animal类并重写了speak()方法。当调用speak()方法时,根据对象的具体类型,会执行对应类中的方法实现,实现了多态的特性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com