靜態屬性呼叫問題

2021-09-27 06:28:49 字數 655 閱讀 2377

乙個父類定義了static靜態**塊,且有乙個靜態變數value;子類實現(implements)父類,子類中也有靜態**塊,那麼直接呼叫子類.value輸出內容是什麼呢?

且看**:

package com.example.classloading;

public class superclass

public static int value = 123;

}package com.example.classloading;

public class childclass extends superclass

}package com.example.classloading;

/** * 對於靜態字段,只有直接定義這個欄位的類才會被初始化

* @author yanup

* */

public class test

}

大家能猜到最終列印的是什麼麼?

superclass init!!!

123

驚不驚喜,意不意外,不錯,只列印了父類中的靜態**塊和value值;

總結如下:對於靜態字段,只有直接定義這個欄位的類才會被初始化!!!!切記切記切記,重要的事情說三遍!!!

靜態屬性與非靜態屬性

靜態屬性 由static修飾的為類 方法 變數或 塊等。非靜態屬性 不由static修飾 靜態屬性特點 一宣告就被儲存在棧中,直接佔據記憶體,可以快速穩定的呼叫。2.生命週期長,從jvm載入開始到jvm載入結束。3.全域性唯一,在乙個執行環境中,靜態變數只有乙個值,任何一次修改都是全域性性的影響。4...

靜態屬性靜態方法

靜態屬性用於儲存內的公有資料 靜態方法裡面只能訪問靜態屬性 靜態成員不需要例項化就可以訪問 類的內部可以通過self或者static關鍵字訪問自身的靜態成員 子內方法中可以通過parent關鍵字訪問父類的靜態成員 可以通過類的名稱在類定義外部訪問靜態成員 class human class nbap...

python 類屬性,靜態呼叫,變數私有化

類屬性 class toy object count 0 def init self,name self.name name toy.count 1 classmethod def toy count cls print 玩具的數量 d cls.count toy1 toy 樂高 toy2 toy ...