1. 继承的基本概念
- 继承是面向对象编程(OOP)三大特性之一(另外两个是封装和多态)。
- 继承允许子类自动拥有父类的属性和方法,无需重复定义。
- 继承的好处:代码复用、结构清晰、易于扩展和维护。
2. 你的代码结构详解
class User:
def __init__(self, name):
self.name = name
def see_message(self):
print('hello world')
class Admin(User):
pass
if __name__ == '__main__':
pass
解释
1)父类(基类、超类):User
User类有:
- 构造方法
__init__,初始化name属性。 - 实例方法
see_message,打印“hello world”。
2)子类:Admin
Admin(User)表示Admin类继承自User类。pass表示暂时没有为Admin类添加新内容。- 继承后,
Admin类自动拥有User类的所有属性和方法。
3)主程序入口
if __name__ == '__main__': 是Python的惯用写法,表示只有直接运行本文件时,下面的代码才会执行。
3. 继承的实际效果
子类可以直接使用父类的属性和方法
if __name__ == '__main__':
admin1 = Admin('zhangsan')
print(admin1.name)
admin1.see_message()
Admin对象admin1虽然没有自己定义__init__和see_message,但可以直接用父类的。
4. 子类扩展和重写
子类可以添加自己的属性和方法
class Admin(User):
def delete_user(self, user):
print(f'{self.name} 删除了用户 {user.name}')
子类可以重写(覆盖)父类的方法
class Admin(User):
def see_message(self):
print('admin message')
- 如果子类和父类有同名方法,优先调用子类自己的方法。
5. 调用父类的方法
- 子类可以用
super()调用父类的方法,常用于重写__init__时初始化父类属性。
class Admin(User):
def __init__(self, name, level):
super().__init__(name)
self.level = level
6. 继承的层次结构
- Python支持多层继承和多重继承(一个子类可以有多个父类)。
7. 总结
- 继承让子类自动拥有父类的属性和方法,避免重复代码。
- 子类可以扩展新功能,也可以重写父类的方法。
- 继承让代码结构更清晰、易维护,是OOP的重要特性。