【10.4 python中的类的继承】

python中的类的继承


在Python中,类的继承是面向对象编程的一个核心概念,它允许我们定义一个类(称为子类或派生类)来继承另一个类(称为基类或父类)的属性和方法。这种方式促进了代码的重用和扩展。下面我将详细介绍Python中类继承的基本语法、方法重写以及在派生类中调用基类的__init__()方法。

1. 类继承的基本语法

在Python中,通过指定一个或多个基类作为类定义语句的头部参数,可以定义一个派生类(子类)。基类和派生类之间用圆括号分隔,并用逗号分隔多个基类(如果有多个)。

class BaseClass:
    def __init__(self, name):
        self.name = name
    
    def display(self):
        print(f"Name: {self.name}")

class DerivedClass(BaseClass):
    def __init__(self, name, age):
        super().__init__(name)  # 调用基类的__init__
        self.age = age
    
    def display(self):
        super().display()  # 调用基类的display方法
        print(f"Age: {self.age}")

# 使用DerivedClass
obj = DerivedClass("Alice", 30)
obj.display()

2. 方法重写(Override)

在子类中,我们可以重写基类中的方法。这意味着子类中可以定义一个与基类方法同名的方法,从而在子类对象上调用该方法时,会执行子类定义的方法版本,而不是基类中的版本。

在上面的例子中,DerivedClass重写了display方法,它不仅调用了基类BaseClassdisplay方法(通过super().display()),还添加了额外的功能(打印年龄)。

3. 派生类中调用基类的__init__()方法

在派生类(子类)的__init__方法中,我们经常需要调用基类的__init__方法来初始化继承自基类的属性。这可以通过super()函数来实现,如上例所示。super()函数返回了一个代表父类(基类)的临时对象,使得我们可以调用父类的方法。

class DerivedClass(BaseClass):
    def __init__(self, name, age):
        super().__init__(name)  # 调用基类的__init__方法
        self.age = age

如果不调用基类的__init__方法,则基类定义的任何属性都不会被初始化,除非你在派生类中显式地重新定义它们。

注意事项

  • 当使用继承时,应当小心处理属性的覆盖问题,特别是当基类和派生类都定义了同名的属性时。
  • super()函数非常有用,因为它不仅限于调用__init__方法,还可以用于调用其他任何在基类中定义的方法,这有助于维护基类与派生类之间的清晰界限,同时保持代码的灵活性。
  • 在Python 3中,super()不再需要显式地传递当前类和self参数,因为Python 3中的super()会智能地推断出这些信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wang151038606

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值