以下是代码:
class Cleanser{
private String s="Cleanser";
public void append(String a){s+=a;}
public void dilute(){append(" dilute()");}
public void apply(){append(" apply()");}
public void scrub(){append(" scrub()");}
public String toString(){
return s;
}
public static void main(String []args)
{
Cleanser x=new Cleanser();
x.dilute();x.apply();x.scrub();
System.out.println(x);
}
}
public class Exercise_6_L2 extends Cleanser
{
public void scrub(){
append("Deter.scrub()");
super.scrub();
}
public void foam(){append("form()");}
public static void main(String []args)
{
Exercise_6_L2 x=new Exercise_6_L2();
// x.dilute(); // 1
// x.apply(); // 2
// x.scrub(); // 3
// x.foam(); // 4
System.out.println(x); // 5
System.out.println("Test");
Cleanser.main(args);
}
}
以下是1,2,3,4处代码未注释的结果:D:\my java>javac Exercise_6_L2.javaD:\my java>java Exercise_6_L2
Cleanser dilute() apply()Deter.scrub() scrub()form()
Test
Cleanser dilute() apply() scrub()问题是:标记为5处输出的结果不是应该为对象x的地址吗,怎么会输出这个呢:Cleanser dilute() apply()Deter.scrub() scrub()form()
还有如果把1,2,3,4处代码都注释掉,结果为:Cleanser
Test
Cleanser dilute() apply() scrub()我又不解啦,为什么会把Cleanser给输出呢,请教啊,小弟是Java新手,请看到的都多多少少帮帮忙,先谢谢啦
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货