基礎(chǔ)程序題

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
    }
}

下面哪個(gè)選項(xiàng)的代碼替換到//here會(huì)調(diào)用getFields方法,使出書(shū)結(jié)果是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 類(lèi)要引用 Agg 類(lèi)的實(shí)例需要把 Base 類(lèi)顯示地轉(zhuǎn)換成 Agg 類(lèi),然后調(diào)用 Agg 類(lèi)中的方法. 如果 a 是 Base 類(lèi)的一個(gè)實(shí)例,是不存在這個(gè)方法的,必須把 a 轉(zhuǎn)換成 Agg 的一個(gè)實(shí)例

題目二

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();
    }
}

輸出結(jié)果是 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 因?yàn)檫@里的方法 getName 是靜態(tài)的. 具體執(zhí)行哪一個(gè),則要看是由哪個(gè)類(lèi)來(lái)調(diào)用的.

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)