Python--类的继承和多态

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python--类的继承和多态相关的知识,希望对你有一定的参考价值。

1. 类的继承和多态


1.1 类的继承

继承是为代码复用和设计复用而设计的,是面向对象程序设计的重要特性之一。
当我们设计一个新类时,如果可以继承一个已有的设计良好的类然后进行二次开发,
无疑会大幅度减少开发工作量。

Python中类与类之间具有继承关系,其中被继承的类称为父类或基类,继承的类称为子类或派生类。
在这里插入图片描述


1.1.1 类的单继承

单继承指的是子类只继承一个父类,其语法格式如下:
在这里插入图片描述
在这里插入图片描述

class Amphibian:
    name = "两栖动物"

    def features(self):
        print("幼年用鳃呼吸")
        print("成年用肺兼皮肤呼吸")


class Frog(Amphibian):
    def attr(self):
        print(f"青蛙是{self.name}")
        print("我会呱呱叫")


frog = Frog()
print('-------')
print(frog.name)
print('-------')
frog.features()
print('-------')
frog.attr()

运行结果:
在这里插入图片描述


1.1.2 类的多继承

在这里插入图片描述

示例:
在这里插入图片描述

代码:

class English:
    def eng_know(self):
        print('具备英语知识。')


class Math:
    def math_know(self):
        print('具备数学知识。')


class Student(English, Math):
    def study(self):
        print('学生的任务是学习。')


stu = Student()
stu.eng_know()
stu.math_know()
stu.study()

在这里插入图片描述


1.2 方法重写

在这里插入图片描述

代码:

class Felines:
    def speciality(self):
        print("猫科动物特长是爬树")


class Cat(Felines):
    name = "猫"

    def speciality(self):
        print(f'{self.name}会抓老鼠')
        print(f'{self.name}会爬树')


cat = Cat()
cat.speciality()

在这里插入图片描述


1.3 方法重写后调用父类的方法

在这里插入图片描述

代码:

class Felines:
    def speciality(self):
        print("猫科动物特长是爬树")


class Cat(Felines):
    name = "猫"

    def speciality(self):
        super().speciality()
        print(f'{self.name}会抓老鼠')
        print(f'{self.name}会爬树')


cat = Cat()
cat.speciality()

在这里插入图片描述


1.4 多态与多态性

在这里插入图片描述
在这里插入图片描述
代码:

class Rabbit:
    @staticmethod
    def move():
        print("兔子蹦蹦跳跳")


class Snail:
    @staticmethod
    def move():
        print("蜗牛缓慢爬行")


def test(obj):
    obj.move()


Ra = Rabbit()
Sn = Snail()
test(Ra)
print('----------------')
test(Sn)

在这里插入图片描述


1.4.1 多态

相信通过上面的例子,你已经对多态有一些感悟了。
多态指同一个属性或行为在父类及其各派生类中具有不同的语义。

多态,顾名思义指“多种形态”。多态表示不同的对象可以执行相同的动作,但要通过它们自
己的实现代码来执行。

例:猪、狗、猫都属于动物类,我们将动物类作为父类,猪“哼哼叫”,狗“汪汪叫”,猫“喵
喵叫”,猪、狗、猫三者都能叫,但三者都要通过重写父类的方法才能实现。

1.4.2 多态性

在这里插入图片描述



以上是关于Python--类的继承和多态的主要内容,如果未能解决你的问题,请参考以下文章

python类的继承和多态

python大法好——继承多态

Python面向对象编程之继承与多态详解

python-17-对象多态

Python学习笔记-面向对象进阶封装多态继承

python基础 14 类的三大特性 (继承,多态,封装)