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--类的继承和多态的主要内容,如果未能解决你的问题,请参考以下文章