亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java成員變量的隱藏(實(shí)例講解)

 更新時(shí)間:2017年09月21日 08:06:24   作者:bateman6988  
下面小編就為大家?guī)?lái)一篇Java成員變量的隱藏(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

一、如果子類(lèi)與父類(lèi)中有一個(gè)相同名稱的成員變量,那么子類(lèi)的成員變量會(huì)不會(huì)覆蓋父類(lèi)的成員變量?我們看下在的例子:

public class A {
  public int x=10;
}


public class B extends A {
  public int x=20;
}

public class C {
  public static void main(String[] args) {
    A a=new B();
    System.out.println(a.x);  //1
    B b=new B();
    System.out.println(b.x);  //2
    
    System.out.println(((A)b).x);  //3
  }
}

運(yùn)行C類(lèi)的main方法的結(jié)果為:

10
20
10

通過(guò)結(jié)果我們可以看出子類(lèi)是不會(huì)覆蓋父類(lèi)的成員變量,我們eclipse的調(diào)試工具也能很清晰的看出在對(duì)像a中同時(shí)存在兩個(gè)x的成員變量(其中一個(gè)是父類(lèi)的),如下圖示:

通過(guò)第1個(gè)和第3個(gè)的結(jié)果,可以得出對(duì)像對(duì)于成員的直接訪問(wèn)是靜態(tài)邦定的 ,官方解釋如下:

在一個(gè)類(lèi)中,子類(lèi)中的成員變量如果和父類(lèi)中的成員變量同名,那么即使他們類(lèi)型不一樣,只要名字一樣。父類(lèi)中的成員變量都會(huì)被隱藏。

在子類(lèi)中,父類(lèi)的成員變量不能被簡(jiǎn)單的用引用來(lái)訪問(wèn)。而是,必須從父類(lèi)的引用獲得父類(lèi)被隱藏的成員變量,一般來(lái)說(shuō),我們不推薦隱藏成員變量,

因?yàn)檫@樣會(huì)使代碼變得難以閱讀。

對(duì)于靜態(tài)方法與成員變量類(lèi)似,如下:

public class A {
  public static void print() {
    System.out.println("A Static ");  
  }
}

public class B extends A {
  public static void print() {
    System.out.println("B Static ");  
  }

}


public class C {
  public static void main(String[] args) {
    A a=new B();
    a.print();
    
    B b=new B();
    b.print();
    ((A)b).print();
    
    
  }
}

結(jié)果如下:

A Static
B Static
A Static

以上這篇Java成員變量的隱藏(實(shí)例講解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論