本代码运行结果为:
tell:Teacher
display:base
say:Teacher
结果说明以下几点:
1. 基类和子类如果存在同名变量时,基类和子类变量值是分别维护的,例如self.__mark,在Base类中函数调用self.__mark值,取的仍是基类赋给它的值
2.重载时,如果想调用基类被重载的方法,可以通过Base.funname(self)的方法来调用,那外部如何来调用呢?
3. Teacher->tell调用display()时.传的self代表的应该是子类啊,为什么打印出来的却是基类的呢__mark呢?
这里是因为__mark是私有成员,如果不是私有成员,打印出来的就是子类的值了
而其中调用的say方法,调用到的又是子类的,好乱啊!这是为什么呢?
say方法是公共函数
1412

被折叠的 条评论
为什么被折叠?



