日期:2014-05-20 浏览次数:20601 次
package com.asp;
public class Test1 {
public static void main(String[] args) {
Fu a = new Zi();
a.b();
}
}
class Fu {
public void a() {
System.out.println("fu---a");
}
public void b() {
System.out.println("fu---b");
a();
}
}
class Zi extends Fu {
public void a() {
System.out.println("zi----a");
}
public void b() {
System.out.println("zi----b");
super.b();
System.out.println(super.toString());
}
}
运行的结果是
zi----b
fu---b
zi----a
com.asp.Zi@1fc4bec
我有个不明白的地方 红色的代码super.b()不是相当于调用父类对象的b方法吗
父类对象里面b方法又调用了a方法 那不是应该也是调用的父类的a方法吗
所以我感觉运行结果应该是
zi----b
fu---b
fu---a
还有我最后打印的super.toString()也应该返回一个父类的实例啊 怎么返回了子类的实例了