python之继承及其实现方法

目录

继承

语法格式

继承的代码实现

多继承


继承

语法格式

class 子类类名(父类1, 父类2...):
    pass

r如果一个类没有继承任何类,则默认继承object

python支持多继承

定义子类时,必须在其构造函数中调用父类的构造函数

这之间的继承关系就如同血缘继承一般

继承的代码实现

class Farther(object):  # 这里的object可写可不写,不写就默认为object
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def put_1(self):
        print(self.name, self.age)


class Me(Farther):
    def __init__(self, name, age, university):
        super().__init__(name, age)
        self.grade = university


class Brother(Farther):
    def __init__(self, name, age, grad):
        super().__init__(name, age)
        self.grad = grad

我们现在来看看我们创建的这个结构是什么样的

然后我们来创建Me和Brother的对象

sws_1 = Me('慢蜗牛', 20, '大二')
sws_2 = Brother('小蜗牛', 17, '高二')

sws_1.put_1()
sws_2.put_1()

#结果如下
慢蜗牛 20
小蜗牛 17

那我们这里就可以看到,sws_1和sws_2分别在Me和Brother中继承了Farther的名字、年龄还有方法

最后再通过父类的方法来打印名字与年龄

至于怎么打印年级,大家可以仿照put_1来添加代码实现,动起小手试试啦

多继承

一个子类继承多个父类的继承称为多继承

class A(object):
    pass


class B(object):
    pass


class C(A, B):
    pass

 

Python 中,继承可以通过在子定义中使用父的名称来实现。例如,如果我们有一个 Animal 父和一个 Dog 子,我们可以通过以下方式实现继承: ```python class Animal: def __init__(self, name): self.name = name def speak(self): raise NotImplementedError("Subclass must implement abstract method") class Dog(Animal): def speak(self): return "Woof!" dog = Dog("Fido") print(dog.name) # Output: Fido print(dog.speak()) # Output: Woof! ``` 在这个例子中,Animal 是一个包含一个构造函数和一个抽象方法的基。Dog 继承了 Animal 实现了它的抽象方法。当我们实例化一个 Dog 对象并调用 speak 方法时,它会返回 "Woof!"。 我们也可以重写父方法,如下所示: ```python class Animal: def __init__(self, name): self.name = name def speak(self): return "I am an animal." class Dog(Animal): def speak(self): return "Woof!" def __str__(self): return f"{self.name} is a dog." dog = Dog("Fido") print(dog.speak()) # Output: Woof! print(dog) # Output: Fido is a dog. ``` 在这个例子中,我们重写了 Animal 的 speak 方法Python 内置的 __str__ 方法,以实现更具体的行为。注意,我们可以通过调用 super() 函数来调用父方法。例如,如果我们想在 Dog 的 speak 方法中调用 Animal 的 speak 方法,我们可以这样做: ```python class Dog(Animal): def speak(self): return super().speak() + " Woof!" ``` 这会将 "I am an animal." 与 "Woof!" 组合起来,以生成 "I am an animal. Woof!" 的输出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

放氮气的蜗牛

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

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

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

打赏作者

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

抵扣说明:

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

余额充值