继承是一种重要的面向对象编程概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。以下是如何使用继承的一些基本步骤和注意事项:
父类包含一些属性和方法,这些属性和方法可以被子类继承。
子类通过继承关键字 `extends` 来定义,并可以添加或重写父类的属性和方法。
代码复用:子类可以重用父类的代码,减少重复编写相同功能的工作量。
扩展性:通过继承,可以方便地扩展和修改已有的类结构。
多态性:子类可以覆盖或扩展父类的方法,实现不同的行为。
在子类的定义中,使用 `extends` 关键字来指定父类。
子类可以访问父类的公有和受保护成员,但不能直接访问私有成员。
子类的构造函数在创建子类对象时自动调用,且必须调用父类的构造函数(使用 `super` 关键字)。
析构函数在对象销毁时自动调用,调用顺序与构造函数相反。
使用 `super` 关键字来访问父类的构造函数和方法。
子类可以访问父类的公有和受保护成员,但不能直接访问私有成员。
如果有遗嘱或遗赠协议,按照遗赠协议、遗嘱、法定继承的顺序行使继承权。
如果没有遗嘱或遗赠协议,按照配偶、子女、父母和兄弟姐妹、祖父母、外祖父母的法定继承顺序行使继承权。
示例代码
```python
class Base:
def __init__(self, name):
self.name = name
def base_func(self):
print(f"Base function called for {self.name}")
class Derived(Base):
def __init__(self, name, age):
super().__init__(name)
self.age = age
def derived_func(self):
print(f"Derived function called for {self.name} with age {self.age}")
self.base_func()
创建子类对象
derived = Derived("Alice", 30)
derived.derived_func()
```
在这个示例中:
`Base` 类有一个构造函数和一个方法 `base_func`。
`Derived` 类通过 `extends` 关键字继承了 `Base` 类,并添加了一个构造函数和一个方法 `derived_func`。
`Derived` 类的构造函数使用 `super().__init__(name)` 调用父类的构造函数。
`derived_func` 方法中,`base_func` 被成功调用,展示了多态性。
通过这种方式,继承提供了一种清晰、灵活的方式来组织和管理代码,同时提高了代码的可维护性和可扩展性。