基礎(chǔ)程序題

2018-07-03 14:36 更新

題目一

  1. class Base{}
  2. class Agg extends Base{
  3. public String getFields(){
  4. String name = "Agg";
  5. return name;
  6. }
  7. }
  8. public class Avf{
  9. pulic static void main(String argv[]){
  10. Base a = new Agg();
  11. //here
  12. }
  13. }

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

題目二

  1. class A{
  2. public A(){
  3. System.out.println("A");
  4. }
  5. }
  6. public class B extends A{
  7. public B(){
  8. System.out.println("B");
  9. }
  10. public static void main(String[] args){
  11. A a = new B();
  12. a = new A();
  13. }
  14. }

輸出結(jié)果是 A B A

題目三

  1. class A{
  2. public void print(){
  3. System.out.println("A");
  4. }
  5. }
  6. class B extends A{
  7. public void print(){
  8. System.out.println("B");
  9. }
  10. }
  11. public class Test{
  12. ..
  13. B objectB = new B();
  14. objectB.print();
  15. A as = (A) objectB;
  16. as.print();
  17. A asg = objectB;
  18. asg.print();
  19. as = new A();
  20. as.print();
  21. ..
  22. }

輸出為 B B B A

題目四

  1. public class Test {
  2. public static void main(String[] args){
  3. Father father = new Father();
  4. Father child = new Child();
  5. System.out.println(father.getName());
  6. System.out.println(child.getName());
  7. }
  8. }
  9. class Father{
  10. public static String getName(){
  11. return "Father";
  12. }
  13. }
  14. class Child extends Father{
  15. public static String getName(){
  16. return "Child";
  17. }
  18. }

輸出是 Father Father 因為這里的方法 getName 是靜態(tài)的. 具體執(zhí)行哪一個,則要看是由哪個類來調(diào)用的.

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號