0%

Python基础--重写

python

Python基础–重写

当子类的方法与分类的方法同名的时候,这个是后就出现了重写方法的问题,
子类直接调用了自己的方法,不会在调用父类相同名字的方法

==重写的实例==

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Animal:
def bark(self):
print("我要吼两嗓子")


class Cat(Animal):
def bark(self):
# 重写: 在子类中定义和父类同样的方法
# 如果发生重写,只会调用当前类的方法,不会向父类查询方法
# 当前类-->父类-->在上级的父类-->object->没有的话就会报错
print("喵喵喵喵喵喵")


xiaohua = Cat()
xiaohua.bark()

指定调用被重写的方法

目前我们有三种方法来进行指定调用,从而避免被重写的问题

  • 父类名.方法(self) 指定调用父类的方法,从而达到目前
  • 引入超类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class Cat:
def bark(self):
print("嗷嗷嗷")


class SmallCat(Cat):
def bark(self):
print("汪汪汪")

def SeeMaster(self):
print("摇尾巴")
# self.bark() # 因为重写导致只能调用当前方法

# 需求:需要调用被重写的父类防范

# First 1
Cat.bark(self)

# First 2
# super(超类)
super(SmallCat, self).bark()

# 超类的简写
super().bark()



xiaohua = SmallCat()
xiaohua.SeeMaster()