基础程序题

2018-07-03 14:36 更新

题目一

class Base{}


class Agg extends Base{
    public String getFields(){
        String name = "Agg";
        return name;
    }
}


public class Avf{
    pulic static void main(String argv[]){
        Base a = new Agg();
        //here
    }
}

下面哪个选项的代码替换到//here会调用getFields方法,使出书结果是Agg

A. System.out.println(a.getFields()); B. System.out.println(a.name); C. System.out.println((Base)a.getFields()); D. System.out.println(((Agg)a).getFields());

答案 D

Base 类要引用 Agg 类的实例需要把 Base 类显示地转换成 Agg 类,然后调用 Agg 类中的方法. 如果 a 是 Base 类的一个实例,是不存在这个方法的,必须把 a 转换成 Agg 的一个实例

题目二

class A{


    public A(){
        System.out.println("A");
    }
}


public class B extends A{


    public B(){
        System.out.println("B");
    }


    public static void main(String[] args){
        A a = new B();
        a = new A();
    }
}

输出结果是 A B A

题目三

class A{
    public void print(){
        System.out.println("A");
    }
}


class B extends A{
    public void print(){
        System.out.println("B");
    }
}


public class Test{
    ..
    B objectB = new B();
    objectB.print();


    A as = (A) objectB;
    as.print();


    A asg = objectB;
    asg.print();


    as = new A();
    as.print();
    ..
}

输出为 B B B A

题目四

public class Test {
    public static void main(String[] args){
        Father father = new Father();
        Father child = new Child();
        System.out.println(father.getName());
        System.out.println(child.getName());
    }
}


class Father{
    public static String getName(){
        return "Father";
    }
}


class Child extends Father{
    public static String getName(){
        return "Child";
    }
}

输出是 Father Father 因为这里的方法 getName 是静态的. 具体执行哪一个,则要看是由哪个类来调用的.

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号