Java入门习题(三)——初始化

来源:互联网 发布:中国十大zu最恶心公知 编辑:程序博客网 时间:2024/06/06 07:23

Java入门习题

  • Java入门习题
    • 初始化部分
        • 1请写出下列程序的运行结果
        • 2请写出下列程序的运行结果
        • 3请写出下列程序的运行结果

初始化部分

1,请写出下列程序的运行结果

class Father{    Father(){        System.out.println("father");    }}class Son extends Father{    Son(){        System.out.println("son");    }    public static void main(String [] args){        new Son();        new Father();    }}

参考答案:

fathersonfather

解析

子类的构造方法会默认在第一句增加super()方法,如果指定其他带参数的super方法则不执行默认方法

2,请写出下列程序的运行结果

class Father{    int i=0;    public Father(String arg){        System.out.println(arg);        i=1;    }    public Father(){        System.out.println("B");        i=2;    }}class Son extends Father{    public Son(String arg){        System.out.println("C");        i=3;    }    public static void main(String [] args){        int i=4;        Father f=new Son("A");        System.out.println(f.i);    }}

参考答案:

BC5

解析

因为没有指定调用父类的哪一个构造方法,所以编译器默认增加空参数的super()方法

3,请写出下列程序的运行结果

class Father{    int i=0;    public Father(String s){        i=1;    }}class Son extends Father{    public Son(String s){        i=2;    }    public static void main(String [] args){        Son son=new Son("hello world");        System.out.println(son.i);    }}

参考答案:

编译失败

解析

子类没有指定调用父类的构造方法,默认为调用空参构造方法,但是父类没有提供空惨构造方法。解决方案:在父类中添加一个空参的构造方法,或者是在子类中显示的指明有参的构造方法。

  • Java入门习题
    • 初始化部分
        • 1请写出下列程序的运行结果
        • 2请写出下列程序的运行结果
        • 3请写出下列程序的运行结果

0 0