java基礎--代碼塊、繼承、super、final

一.代碼塊

主要介紹靜態代碼塊

即使用static修飾的代碼塊

位置:類中,方法外

調用過程:隨着類的加載而加載,且之加載一次,在構造代碼塊前執行。

實際的應用:用於加載驅動。

用一段代碼體現代碼塊順序:

public class Demo02 {
	static {
		System.out.println("我是main方法的靜態代碼塊");
	}
	public static void main(String[] args) {
		System.out.println("main");
		Test test1 = new Test();
		Test test2 = new Test("yy");
	}
}
class Test{
	String name;
	public Test() {
		System.out.println("無參");
	}
	public Test(String name){
		System.out.println("有參");
	}
	
	{
		System.out.println("構造");
	}
	static{
		System.out.println("靜態");
	}
}

打印結果

我是main方法的靜態代碼塊
main
靜態
構造
無參
構造
有參

二.繼承

繼承是用來傳遞的,繼承的是屬性與方法(不是全部),用來建立類與類之間的關係。
好處:1.減少代碼量(代碼複用性)2.提高工作效率3.增強了類與類之間的關係
java中只允許單繼承(通過接口多繼承)
Java中 還允許多層繼承(繼承鏈)
當你只想使用共有方法和屬性,一般選擇繼承鏈最頂端的類。
當你只想使用特有方法和屬性,一般選擇繼承鏈最末端的類。

如果一個類沒有寫繼承,那麼這個類默認繼承 Object類(基類)

繼承中的構造方法

首先,構造方法不能繼承,但是,當創建子類對象時(不管你在創建子類對象時用的有參還是無參構造),爲了保證繼承的完整性,系統會默認幫你調用父類的無參構造方法。

如果父類中沒有無參構造方法該怎麼辦?

只需要在子類的構造方法的第一行,調用一下父類方法(有參無參都行)

關鍵字super與this

super在子類中代表的是父類的對象
this 在子類中 可以調用子類的屬性和方法(當子類中沒有這個屬性或方法,就去父類中尋找,找到就用,沒找到就報錯)。

三.方法的重寫(override)

前提:至少兩個有繼承關係的類。

作用:對父類的方法補充升級。

public class Demo08 {
    public static void main(String[] args) {
        TestD testD = new TestD();
        testD.print(); 
    }
}
class TestC{
	public void print() {
		System.out.println("我是c的print方法");
	}
}
class TestD extends TestC{
	public void print() {
		//重寫父類的方法
		//調不調用父類的方法,根據需求而定
		super.print();
		System.out.println("我是d的print方法");
        }
 }

打印結果爲:

我是c的print方法
我是d的print方法

四.關鍵字 final

1.修飾方法 方法不能被重寫
2.修飾類 類不能被繼承
3.修飾變量 變量不能被修改
4.修飾引用數據類型 不能進行重新指向(地址不能修改)

一般使用final定義靜態常量,然後可以用類名直接調用。
常規命名規範 所有字母大寫 多單詞用下劃線分開
例如:public static final int MAX_VALE = 10;


發佈了32 篇原創文章 · 獲贊 5 · 訪問量 7295
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章