日期:2014-05-19  浏览次数:20655 次

关于复用类中的继承中打印顺序!!
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 Detergent extends Cleanser{
 public void scrub(){
append("Detergent.scrub()");
super.scrub();
 }
 public void foam(){append("foam()");}
 public static void main(String[] args){
Detergent x = new Detergent();
x.dilute();
x.apply();
x.scrub();
x.foam();
System.out.println(x);
System.out.println("Testing base class");
Cleanser.main(args);
 }
}

//请问他的打印顺序怎么来的--~能讲解下么?


------解决方案--------------------
探讨
打印结果是:
Cleanserdilute()apply()Detergent.scrub()scrub()foam()
Testing base class
Cleanserdilute()apply()scrub()
请问为啥结果是这个。我看的好纠结,大神们帮帮忙