python 继承 详细描述
时间: 2023-07-05 21:33:35 浏览: 195
Python 中的继承是面向对象编程中的一种重要概念,其实现方式与其他语言类似。继承是指在定义一个类时可以继承另一个已经存在的类的属性和方法,被继承的类称为父类或基类,新定义的类称为子类或派生类。
继承的作用是可以减少重复的代码,提高代码的复用性和可维护性,同时也可以实现多态和代码组织的层次化。
Python 中继承的语法格式如下:
```python
class 子类名(父类名):
# 子类的定义
```
在上面的代码中,子类名是新定义的类的名称,而父类名则是要继承的已存在的类的名称。
子类可以继承父类的属性和方法,子类也可以重写父类的方法或者添加新的属性和方法。
下面是一个简单的继承例子:
```python
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def eat(self):
print(f"{self.name} is eating")
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
def bark(self):
print(f"{self.name} is barking")
dog1 = Dog("Buddy", 2, "Golden Retriever")
print(dog1.name) # 输出:Buddy
print(dog1.age) # 输出:2
print(dog1.breed) # 输出:Golden Retriever
dog1.eat() # 输出:Buddy is eating
dog1.bark() # 输出:Buddy is barking
```
在上面的例子中,Animal 类是父类,Dog 类是子类。Dog 类继承了 Animal 类的属性和方法,并且添加了 bark() 方法。在 Dog 类的构造函数中,使用 super() 函数调用了父类的构造函数,并传入了 name 和 age 参数。由于 Dog 类的构造函数中还要添加 breed 属性,因此需要在父类的构造函数调用之后再添加。最后,实例化了一个 Dog 类的对象 dog1,并调用了它的属性和方法。
注意,在子类中重写父类的方法时,可以使用 super() 函数来调用父类的方法。例如,在上面的例子中,如果要重写 eat() 方法,可以这样写:
```python
class Dog(Animal):
def eat(self):
super().eat()
print(f"{self.name} is eating bones")
```
在上面的代码中,eat() 方法首先调用了父类的 eat() 方法,然后再添加了自己的代码。这样做可以保留父类的功能,并在此基础上添加新的功能。
阅读全文