写出以下程序的运行结果。
class First{
public First(){
aMethod(); }
public void aMethod(){
System.out.println(“in First class”);}
}
public class Second extends First{
public void aMethod(){
System.out.println(“in Second class”);}
public static void main(String[ ] args){
new Second( ); }
}请问为什么结果是
in Second class
呢?
class First{
public First(){
aMethod(); }
public void aMethod(){
System.out.println(“in First class”);}
}
public class Second extends First{
public void aMethod(){
System.out.println(“in Second class”);}
public static void main(String[ ] args){
new Second( ); }
}请问为什么结果是
in Second class
呢?
class First {
public First() {
aMethod();//接下面调用aMethod();被子类覆盖,所以打印in Second class;
} public void aMethod(){
System.out.println("in First class");}
}public class Second extends First {
public Second(){//默认有个空构造方法
super();//默认有个super();调用父类空构造方法。
}
public void aMethod(){
System.out.println("in Second class");} public static void main(String[] args) {
new Second();
}
}
public static void changestr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changestr(str);
System.out.println(str);
}
}
上面的问题我懂了,谢谢大侠们的帮助,但是这个问题同样困惑着我,为什么输出结果是1234,而不是welcome呢?