- 05
- 7月
这两天请了两天假,专心复习了两天的Java,没有去奥体中心。
我这学期根本没有买Java的课本,只是从图书馆借来一本英文原版的Core Java 2当作课本用了。而且仗着寒假里那点从《C#入门经典》中悟出的面向对象的理论,再加上这学期主要是在玩PHP。两天复习,确实让我发现了自己还有很多没有弄明白的地方。
复习感觉收获最大的就是终于明白了类继承时的所谓“域的隐藏与方法的覆盖”:
一个类B继承类A时。如果B中有与A同名的域fieldC,则实例化B的对象b时,A和B的fieldC都会存在于该对象中。直接访问b.filedC将会得到B的fieldC的值。但只要将b转换为A类型,就可以访问到A的fieldC,就像这样((A)b).fieldC。这就是所谓的“隐藏”。
但如果B中有与A同名的方法methodD(),则实例化B的对象b时,该对象中只有一份filedD()的代码,不论是以b.methodD()访问还是((A)b).fieldD(),调用的都是B中的methodD()。这就是所谓的“覆盖”。
明后天继续到奥体去做志愿者,一周之内还得把我的Java课程设计“连连看”做出来。
加油!