集册 Java 面试笔记 基础程序题

基础程序题

欢马劈雪     最近更新时间:2020-08-04 05:37:59

141

题目一

    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

题目四

展开阅读全文