首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请问一个有关问题,请大侠们帮忙,多谢

2012-05-27 
请教一个问题,请大侠们帮忙,谢谢写出以下程序的运行结果。classFirst{publicFirst(){aMethod()}publicvoid

请教一个问题,请大侠们帮忙,谢谢
写出以下程序的运行结果。
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
呢?

[解决办法]

Java code
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();    }}
[解决办法]
因为你在子类当中重写了啊Method方法
[解决办法]
new Second( );时会首先调用父类的不带参数的构造方法,但Second中重写了aMethod方法,所以执行的是Second中的aMethod方法
[解决办法]
探讨
public class ChangeStrDemo {
public static void changestr(String str){
str="welcome";
}
public static void main(String[] args) {
String str="1234";
changestr(s……

[解决办法]
方法中的str在方法结束后参数销毁了,所以在system.out.print(str)中的引用地址是“1234”的地址。

热点排行
Bad Request.