国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JAVA繼承時父類子類都有靜態代碼塊構造代碼塊時輸出順序問題

寵來也 / 2787人閱讀

摘要:父類,子類子類方法三者中有同名變量時,調用子類方法輸出,輸出,為子類方法中的值,表示子類中的值,表示父類中的值。靜態代碼塊構造代碼塊構造方法靜態代碼塊構造代碼塊構造方法父類和子類都有靜態代碼塊,構造代碼塊,構造方法,初始化子類對象。

package cat1;

 class fu{
    public int num=10;
    public fu() {
        System.out.println("fu");
    }
 }
 
 class zi extends fu{
     public int num=20;
     public zi() {
         System.out.println("zi");
     }
     public void show() {
         int num=30;
         System.out.println(num);
         System.out.println(this.num);
         System.out.println(super.num);
     }
 }
 
public class test{
    public static void main(String [] args) {
 zi z=new zi();
    z.show();
}
}


    

父類,子類 子類方法三者中有同名變量num時,調用子類方法輸出,num輸出30,為子類方法中的值,this.num表示子類中的值,super.num表示父類中的值。

2

class Fu {
    static {
        System.out.println("靜態代碼塊Fu");
    }

    {
        System.out.println("構造代碼塊Fu");
    }

    public Fu() {
        System.out.println("構造方法Fu");
    }
}

class Zi extends Fu {
    static {
        System.out.println("靜態代碼塊Zi");
    }

    {
        System.out.println("構造代碼塊Zi");
    }

    public Zi() {
        System.out.println("構造方法Zi");
    }
}
public class test
{public static void main(String []args)
    {Zi z = new Zi();
    
    }
}

父類和子類都有靜態代碼塊,構造代碼塊,構造方法,初始化子類對象。此時:
1.jvm調用了main方法,main進棧;
2.遇到Zi z=new zi(); 會將fu.class和zi.class 分別加進內存,再創建對象;
3.父類的靜態代碼塊會隨著fu.class一起加載,當zi.class進內存,子類當靜態
代碼塊也會隨著一起進去;
所以先輸出靜態代碼塊fu再輸出靜態代碼塊zi
4.走子類構造方法,先初始化父類,而父類有構造代碼塊
綜上,順序為 1父類靜態代碼塊2子類靜態代碼塊3父類構造代碼塊4父類構造方法
5子類構造代碼塊6子類構造方法

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77283.html

相關文章

  • Java 面向對象(上)

    摘要:對象的引用關鍵字總是指向調用該方法的對象。根據出現位置的不同,作為對象的默認引用有兩種情形。構造器中引用該構造器正在初始化的對象。如果同一個類中包含了兩個或兩個以上方法的方法名相同,但形參列表不同,則被稱為方法重載。 類和對象 定義類 面向對象的程序設計過程中有兩個重要概念:類(class)和對象(object,也被稱為實例,instance),其中類是某一批對象的抽象,可以把類理解成...

    SimonMa 評論0 收藏0
  • Java 同步鎖

    摘要:如果同一個線程再次請求該鎖,計數器會遞增,每次占有的線程退出同步代碼塊時計數器會遞減,直至減為時鎖才會被釋放。表示或在該上的所有線程的個數用來實現重入鎖的計數。只有兩種可能的值表示沒有需要喚醒的線程表示要喚醒一個繼任線程來競爭鎖。 一、synchronized 1.類型 (1)對象鎖 對象鎖是作用在實例方法或者一個對象實例上面的 一個類可以有多個實例對象,因此一個類的對象鎖可能會有多個...

    xi4oh4o 評論0 收藏0
  • 談談Java的面向對象

    摘要:也就是說,一個實例變量,在的對象初始化過程中,最多可以被初始化次。當所有必要的類都已經裝載結束,開始執行方法體,并用創建對象。對子類成員數據按照它們聲明的順序初始化,執行子類構造函數的其余部分。 類的拷貝和構造 C++是默認具有拷貝語義的,對于沒有拷貝運算符和拷貝構造函數的類,可以直接進行二進制拷貝,但是Java并不天生支持深拷貝,它的拷貝只是拷貝在堆上的地址,不同的變量引用的是堆上的...

    ormsf 評論0 收藏0
  • Java類初始化順序

    摘要:對子類成員數據按照它們聲明的順序初始化,執行子類構造函數的其余部分。參考類的初始化順序引了大半類加載的時機 jvm系列 垃圾回收基礎 JVM的編譯策略 GC的三大基礎算法 GC的三大高級算法 GC策略的評價指標 JVM信息查看 GC通用日志解讀 jvm的card table數據結構 Java類初始化順序 Java對象結構及大小計算 Java的類加載機制 Java對象分配簡要流程 年老...

    boredream 評論0 收藏0
  • JAVA快速復習

    摘要:八種基本數據類型數組定義數組元素類型數組名元素類型元素個數和數組長度元素類型數組名元素類型元素元素元素元素內存的劃分寄存器本地方法區方法區棧內存存儲局部變量變量所屬作用域一旦結束變量自動釋放方法進棧局部變量屬于方法所以方法要先進棧堆內存存儲 八種基本數據類型 byte short int long boolean char float double JAVA數組 定義數組 元...

    cppowboy 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<