python中的继承

目录

一、继承

单继承

多继承

方法的重写


 

一、继承

在Python中,继承是面向对象编程中的重要概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以继承父类的属性和方法,并且可以添加自己特有的属性和方法。

要创建一个子类并继承父类,可以按照以下方式进行:

class ParentClass:
    def __init__(self, name):
        self.name = name
    
    def display_name(self):
        print("Name:", self.name)

class ChildClass(ParentClass):
    def __init__(self, name, age):
        super().__init__(name)
        self.age = age
    
    def display_age(self):
        print("Age:", self.age)

# 创建一个子类实例
child = ChildClass("Alice", 25)

# 调用继承自父类的方法
child.display_name()

# 调用子类自己的方法
child.display_age()

在上面的例子中,ParentClass是父类,ChildClass是子类。子类ChildClass继承了父类ParentClass的属性和方法,并添加了自己的属性和方法。

要调用父类的方法,可以使用super()函数来访问父类的方法。通过继承,子类可以重用父类的代码,并且可以实现代码的重用和扩展。

单继承

在Python中,类默认是采用单继承的方式。这意味着每个类只能继承自一个父类。如果一个类需要继承多个父类的属性和方法,可以使用多重继承的方法。但是在实际开发中,多重继承可能会导致代码结构变得复杂,增加维护的难度,因此要谨慎使用多重继承。

举例:

 

多继承

在Python中,多继承是一种面向对象编程的特性,允许一个子类继承自多个父类。多继承使得子类可以同时具有多个父类的属性和方法。

以下是一个简单的多继承示例:

class Parent1:
    def method1(self):
        print("Method from Parent1")

class Parent2:
    def method2(self):
        print("Method from Parent2")

# 子类同时继承Parent1和Parent2
class Child(Parent1, Parent2):
    def method3(self):
        print("Method from Child")

# 创建子类实例
child = Child()

# 调用继承自Parent1的方法
child.method1()

# 调用继承自Parent2的方法
child.method2()

# 调用子类自己的方法
child.method3()

在上面的例子中,Child类同时继承自Parent1Parent2两个父类。子类Child可以访问父类Parent1Parent2中定义的方法,也可以定义自己的方法。

 

方法的重写

在 Python 中,方法的重写是指子类重新定义父类中已有的方法。当子类继承自父类并且重新定义了父类中已有的方法时,称为方法的重写。重写方法可以根据子类的需求来修改方法的行为或添加新的功能。

当子类重新定义了父类中已有方法的时候,子类对象调用该方法时会执行子类中的方法而非父类中的方法。这样可以实现对父类方法的定制化,符合不同子类的特定需求。

以下是一个简单的示例,演示如何在 Python 中重写方法:

class Animal:
    def make_sound(self):
        print("Animal makes a sound")

class Dog(Animal):
    def make_sound(self):
        print("Dog barks")

class Cat(Animal):
    def make_sound(self):
        print("Cat meows")

animal = Animal()
dog = Dog()
cat = Cat()

animal.make_sound()  # Output: Animal makes a sound
dog.make_sound()     # Output: Dog barks
cat.make_sound()     # Output: Cat meows

在上面的示例中,DogCat 类分别重写了 Animal 类中的 make_sound 方法,使得每个类对象调用 make_sound 方法时输出对应的声音。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值