问一个Java的初级问题。(20分)

  • 主题发起人 主题发起人 易名烦
  • 开始时间 开始时间

易名烦

Unregistered / Unconfirmed
GUEST, unregistred user!
class Cleanser {
private String s = new String("Cleanser");
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);
}
}
好象第二个main没有将第一个main过载掉。
 
在一个文件中好像只允许出现一个:
public static void main(String[] args)
的CLASS
 
>>好象第二个main没有将第一个main过载掉。
是没有过载掉,因为使用Cleanser类来调用main(args)静态方法
 
可是出来是: Cleanser dilute() apply() scrub()
System.out.println("Testing base class:");这句好象没起作用。
如果我把Cleanser.main(args);去掉呢?会不会过载掉。
如果不是,请问怎么将Cleanser的main过载掉。
 
>>可是出来是: Cleanser dilute() apply() scrub()
不是吧,我执行的结果是:
Cleanser dilute() apply() Detergent.scrub() scrub() foam()
Testing base class:
Cleanser dilute() apply() scrub()
 
朋友,你根本没有过载Cleanser.main(args);,因为你用了它的实例啊
 
哪我将Cleanser.main(args)给删掉总可以了吧?
 
程序只允许一个main,应为是static的,程序在初始化就执行static,如果使用2个main,程序
要引起混淆得
 
应该不是程序只允许一个main,应该是一个类只允许有一个main,对吧?
 
程序只允许一个main
 
一个类一个main
and main是静态方法,所以不会覆盖:)
 
请哪位朋友改改嘛!改成第二个main过载第一个main!
 
去掉第一个MAIN方法,改写成方法
 
是这样吧?
 
如果两个都有MAIN,哪是不是要分做成两个文件?
 
是的,一个.java文件只能有一个程序进入点,即main
 
多人接受答案了。
 

Similar threads

W
回复
5
查看
318
wait_for_love
W
回复
8
查看
346
小猪
I
回复
6
查看
251
I
后退
顶部