代码如下:
class Student(object):
def __init__(self,name,age,school):
self.__name = name
self.__age = age
self.__school = school
def toString(self):
print('我是%s,我%s 岁了,在%s 上学.' %(self.__name,self.__age,self.__school))
class XiaoMing(Student):
def __init__(self,name,age,school):
self.__name = name
self.__age = age
self.__school = school
''' 覆写父类 toString()方法'''
# def toString(self):
# print('我是%s,我%s 岁了,在%s 上学.' %(self.__name,self.__age,self.__school))
''' 接受 Student 任何子类对象'''
def fun(stu):
stu.toString()
###测试
xm = XiaoMing('小明',25,'北大')
fun(xm)
按照继承, XiaoMing继承自 Student, 且属性是一模一样的,则toString函数再写一遍是多余的, 道理讲,应该直接使用父类的 toString方法,就可以了, 但是我去掉XiaoMing的toString方法后,就找不到 自身实例的私有属性了, 因为 python 解释器将私有属性名改变了, 我就觉得在这里多态基本都是废的, 代码复用完全无效了,
顺便问下大家, 继承/多态 在python中还有那些有用的地方?