在一个有继承的类中,为什么只调用base class而不调用衍生类?

szzhfsz 2004-02-19 10:50:29
代码如下: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()?
...全文
26 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧