本人刚学java,菜鸟一个,有一个疑问:在下面这个代码里面,为什么没有把构造方法(have override)也打印出来? 我明明已经在构造方法里面写了打印的命令代码了,目前只是把主方法里面的命令打印出来了:
package Problem;
public class TestOverride{
private String name;
private int age=10;
public TestOverride(){
}
public TestOverride(String name){
this.name=name; System.out.println("have override");
}public static void main(String[]args){
System.out.println("have been override");
}
}
package Problem;
public class TestOverride{
private String name;
private int age=10;
public TestOverride(){
}
public TestOverride(String name){
this.name=name; System.out.println("have override");
}public static void main(String[]args){
System.out.println("have been override");
}
}
package Problem;
public class TestOverride{
private String name;
private int age=10;
public TestOverride(){}
public TestOverride(String name){
this.name=name;System.out.println("构造方法输出:have override");
}public static void main(String[]args){new TestOverride("demo")System.out.println("have been override");}}
this.name=name;System.out.println("have override");
}
并没有调用
String str ="";
new TestOverride(str);
这样才行
//创建对象,调用构造方法TestOverride(),不会打印
TestOverride toNotPrint = new TestOverride(); //创建对象,调用构造方法TestOverride(String name),会打印
TestOverride toPrint = new TestOverride(""); //直接打印,与对象无关
System.out.println("have been override");}
如果要用
public TestOverride(String name){
this.name=name;System.out.println("have override");
}它来生成对象,还必须传入相应的参数;在main方法中加入new TestOverride("name");
就行了