Python 继承父类的属性和方法
在面向对象的编程中,继承是一种重要的概念,可以让子类复用父类的属性和方法,同时还可以添加自己的属性和方法。在 Python 中,继承是通过定义类时在类名后面的括号中指定父类来实现的。本文将介绍如何在 Python 中继承父类的属性和方法。
定义父类
首先,我们定义一个简单的父类 Person
,包含 name
和 age
两个属性,以及一个 say_hi
方法用来打印问候语。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hi(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
定义子类
接下来,我们定义一个子类 Student
,继承自父类 Person
,并添加一个新的属性 student_id
和一个新的方法 study
。
class Student(Person):
def __init__(self, name, age, student_id):
super().__init__(name, age)
self.student_id = student_id
def study(self, subject):
print(f"{self.name} is studying {subject}.")
在子类的 __init__
方法中,我们使用 super().__init__(name, age)
来调用父类的构造方法,并将 name
和 age
的初始化工作交给父类处理。然后,我们再添加 student_id
的初始化。
创建对象并调用方法
现在,我们可以创建一个 Student
对象,并调用继承自父类的属性和方法,以及子类独有的属性和方法。
# 创建一个 Student 对象
student = Student("Alice", 20, "2021001")
# 调用继承自父类的属性和方法
print(student.name) # 输出: Alice
print(student.age) # 输出: 20
student.say_hi() # 输出: Hello, my name is Alice and I am 20 years old.
# 调用子类独有的属性和方法
print(student.student_id) # 输出: 2021001
student.study("Math") # 输出: Alice is studying Math.
在上面的示例中,我们创建了一个 Student
对象 student
,并通过 student.name
、student.age
来访问继承自父类的属性,通过 student.say_hi()
来调用继承自父类的方法。同时,我们也可以通过 student.student_id
访问子类独有的属性,通过 student.study("Math")
调用子类独有的方法。
总结
通过继承父类的属性和方法,我们可以让子类在不重复编写代码的情况下,直接引用父类的属性和方法,提高了代码的重用性和可维护性。同时,子类还可以添加自己的属性和方法,扩展了类的功能。在实际开发中,合理使用继承可以让代码更加简洁和可读。