逐条回答吧。
1、请问子类Dog的sleep方法算不算是重载的??
我觉的这个问题可能涉及到重载(overlosad)和重写(overriding)概念的区别,在这里是重载,因为子类继承了父类的方法,虽然不算是它自己拥有的,但在客观上它拥有两个方法名参数不同的函数,
自然是重载。
2、子类继承了父类,那么父类的公有成员是在子类中有一份拷贝呢还是说仅仅是在子类调用的时候才存在在子类中,或者是说子类继承父类,仅仅是在访问时可以使用父类的成员但子类本身并不具有这些成员??
这个问题挺有意思的,大家都知道extend英文的中文意思是扩充,也就是说如果把父类当做游戏的话,子类可以看做父类这个游戏的资料片,是在父类基础的补充版本,自然本身没必要拥有这些父类的属性,另外大家也都知道在创造子类对象的时候,都要调用父类构造器,如果子类本身就可以拥有父类的这些属性的话,又何必再调用父类构造器初始化呢,很明显,子类本身是没有父类属性的,它只是可以随时调用父类的属性,而供它调用属性的这个父类对象在它被创造时就已经偷偷创造出并与它绑定了,这么说可能不是很严谨,但是意思是没错的。
|