簡體   English   中英

java中的超類和子類之間是否共享實例變量

[英]Is instance variable shared between super class and sub class in java

class A{
 String foo="bar";
 void m(){

 }
}

class B extends A{
//String foo="xyz";
void m(){
    foo="xyz";
    System.out.println(foo);
    System.out.println(super.foo);
}
}

public class Dell{
 public static void main(String[] args)
    {
    A a=new B();
    System.out.println(a.foo);
    a.m();

}
}

這是在超類(A)和子類(B)之間共享的 foo 變量。當我在 m() 方法中調用 super.foo 時,為什么它不調用 A 類 foo 變量值,即 bar。似乎 foo 在兩者之間共享類。但是這怎么可能? 當我們用 foo 變量聲明 A 時,它有自己的副本,現在當我們覆蓋它並更改子類中的 foo 值時,它如何反映回 Super 類? 請很好地解釋我們的概念

這基本上是您需要了解的關於超類和子類中的實例變量范圍的內容。

http://www.xyzws.com/javafaq/what-is-variable-hiding-and-shadowing/15

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM