程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-Java中的數據成員繼承的多態

java-Java中的數據成員繼承的多態

編輯:編程綜合問答
Java中的數據成員繼承的多態

public class PolymorphismTest {

public void show() {
    A a = new B();
    B b = new B();
    a.show();
    b.show();
    System.out.println("a.a: " + a.a);
    System.out.println("b.a: " + b.a);
}


public class A { 
    public int a = 5;
    public void show() {
        System.out.println("A show");
    }

}

public class B extends A {
    public int a = 6;
    public void show() {
        System.out.println("B show");
    }
}

}

show()函數執行實驗結果:

B show
B show
a.a: 5
b.a: 6

為什麼這裡a.a的值是5而不是6呢?

最佳回答:


Java中成員變量不具有多態性。一般情況下,方法可以在運行時綁定(動態綁定),但是變量只能在編譯時綁定(靜態綁定)。如果要得到B類中的a的值可以在B類中添加a的getter方法然後調用a.getA();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved