从父类继承中的方法,如果不满足程序的需求,就需要重写。
方法重写指的是在子类中自定义实现父类中的同名方法。
下面的例子中,父类的print_sth(s)方法打印的是s,如果子类想要打印的是s,s,这时就需要重写父类的方法:
class P:
x=100
def __init__(self,name):
self.name = name
def print_sth(s):
print(s)
class P1(P):
def print_sth(s):
print(s,s)
方法的重写:P1类中的print_sth重写了父类P中的print_sth方法
子类中调用父类的同名方法
class Person():
def __init__(self,name):
self.name = name
def get_name(self):
return self.name
def set_name(self,name):
if len(name)>5:
return
self.name = name
class ChinesePeople(Person):
def __init__(self,name,nation):
Person.__init__(self,name)
self.nation = nation
def get_nation(self):
return self.nation
def set_nation(self,nation):
self.nation = nation
def set_name(self,name):
super(ChinesePeople,self).set_name(name) #等价于Person.set_name(self,name)
p = ChinesePeople("老王","汉")
p.set_name("abcd")
print(p.name)