在一个有继承的类中,为什么只调用base class而不调用衍生类?
代码如下:package javac06;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
class Cleanser
{
private String s=new String("Cleaner");
public void append(String a){s+=a;}
public void dilute(){append("dilute()");}
public void apply(){append("apply()");}
public void scrub(){append("scrub");}
public void print(){System.out.println(s);}
public static void main(String[]args)
{
Cleanser x=new Cleanser();
x.dilute();x.apply();x.scrub();x.print();
}
}
public class Detergent extends Cleanser{
//change a method:
public void scrub()
{
append("Detergent.scrub()");
super.scrub();//call base.class version
}
//add methods to the interface:
public void foam(){append("foam()");}
//test the new class:
public static void main(String[] args) {
Detergent x=new Detergent();
x.dilute();
x.apply();
x.scrub();
x.foam();
x.print();
System.out.println("testing base class:");
Cleanser.main(args);
}
}
结果如下:Cleanerdilute()apply()scrub
为什么只显示这些哪?为什么不调用衍生类的main()?