这是父类: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);
}
} ///:~
子类的最后一句
Cleanser.main(args);
这个怎么理解阿~?
{
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);
}
} ///:~
子类的最后一句
Cleanser.main(args);
这个怎么理解阿~?
解决方案 »
- static 修饰的变量 和new 出的对象在内存中的创建顺序【求助贴】
- 关于inner class和 super的使用
- linux下一个找不到的JAVA错误
- 如何继承内部类?关于《thinking in java》中的解释有困惑!
- 能否让一个虚拟机实例里的运行的应用程序所调用的类运行在另一个虚拟机实例里?
- static final变量存储内存哪个区?
- 转换字型的问题高手进来.....
- 我想将List的内容,添加到另一个List里,请问思路如何做?
- DOS下运行javac 出现乱码 还有声音,在线等
- j2se,j2ee,j2me,jms各是什么用途,开发工具是什么,在哪儿在载
- 谁有 EMF Build2.1.0和 GEF Build 3.1
- 一个非常奇怪的抓取问题,求救!在线等待
Cleanser dilute() apply() Detergent.scrub() scrub() foam()
Testing base class:
Cleanser dilute() apply() scrub()
{
Detergent x = new Detergent();
x.dilute();
x.apply();
x.scrub();
x.foam();
x.print();
System.out.println("Testing base class:");
Cleanser.main(args);不是有调用
dilute();
apply();
scrub();
foam();
print();
这几个方法么
最后Cleanser.main(args);调用父类的静态main方法
所以可以直接用类名.方法调用.
忘了main是static的……
//Test2.java
class Test1{
private String s="Test1";
public void append (String a) {s+=a;}
public void me() {append("me()");} public String toString() {return s;}
public static void main(String[] arg) { //Test1 main()
Test1 t1=new Test1();
t1.me();
System.out.println(t1);
}
} public class Test2 extends Test1{
public void you() {append("you()");}
public static void main(String[] args) { //Test2 main()
Test2 t2=new Test2();
t2.me();
t2.you();
System.out.println(t2);
Test1.main(args);
//Test1.main(arg); error
}
}
//output :Test1me()you()
Test1me() 提问:1.Test2 main()中Test1.main(args);语句,用类名直接调用main(),括号中的参数应该是什么
2.参数为什么只能是args
3.参数换成arg,就出错,由此看Test1.main(args);是调用的子类中main(),为什么由输出结果看是调用的父类的main()