天天看點

java代碼塊,繼承,final關鍵字簡述

代碼塊分為4種
           

1.局部代碼塊: 在方法中,限定了局部變量的作用範圍

2.構造代碼塊 : 類中方法外,顧名思義,就是執行個體對象時調用,優先于構造函數調用

3.靜态代碼塊:使用static來修飾類中方法外,與構造代碼塊不同,靜态代碼塊是在類加載的時候就加載到靜态區中,優先建立與對象,而且隻調用一次.應用場景:驅動加載

4.同步代碼塊,多線程中才用到,新手先知道有這概念即可

下面有段代碼,來好好建議你的掌握程度:

class Student {
			static {
				System.out.println("Student 靜态代碼塊");
			}
			
			{
				System.out.println("Student 構造代碼塊");
			}
			
			public Student() {
				System.out.println("Student 構造方法");
			}
		}
	
		class Demo2_Student {
			static {
				System.out.println("Demo2_Student靜态代碼塊");
			}
			
			public static void main(String[] args) {
				System.out.println("我是main方法");
				
				Student s1 = new Student();
				Student s2 = new Student();
			}
		}
           

輸出:依次為

1.System.out.println("Demo2_Student靜态代碼塊")

2.System.out.println("我是main方法");

3.System.out.println("Student 靜态代碼塊");

4.System.out.println("Student 構造代碼塊");

5.System.out.println("Student 構造方法");

6.System.out.println("Student 構造代碼塊");

7.System.out.println("Student 構造方法");

記憶體分析圖

java代碼塊,繼承,final關鍵字簡述

在結合上面的靜态語句塊和構造語句塊,就可以的到上面依次列印的結果.

繼承:在封裝之後,java面向對象的三大特性之二,(最後一個是多态,多态的前提必須有繼承,繼承中的重寫(Override),以及父類引用指向子類對象),

把類中相同的代碼 抽取出來 寫成一個類,最為一個父類,給子類繼承使用

繼承的特點:減少代碼的重複編寫量

繼承寫法:

class 子類 extends 父類{

} (這裡的父類不可以是final 修飾的類,下面會講到final 修飾符)

在Java 中隻有單繼承,如何實作多繼承的功能呢?

就要使用JAVA 所允許的多接口,實作多繼承的效果

所有的類都有一個基類(Object 類)

繼承中的構造方法,是不能被繼承的

class Father{
	String name;
	public Father() {
		this("ssss");
		System.out.println("無參構造方法");
	}
	public Father(String name) {
		this.name = name;
		System.out.println("有參構造方法"+name);
	}
	private void sayhi() {
		System.out.println(name);
	}
}
class Son extends Father{
	public Son() {
		super();//沒寫,系統就自己加上
	}
	public Son(String name) {
		super();//沒寫,系統就自己加上
		this.name = name;
		System.out.println("子類有參構造");
	}
}
           

這裡要注意到,子類Son  的構造方法雖然沒有繼承父類構造方法,但是他的構造方法中,會自己調用父類的無參構造方法.即使不寫,系統也會自動加上.

繼承時,如果子類和父類有相同名字的成員變量, 用this.成員變量  就是調用目前子類的屬性,如果子類沒有,系統會自動去父類中尋找.

super.  在類中代表的是父類對象,super.調用父類的屬性.

this();  調用本類的構造方法

super(); 調用父類的構造方法

final 修飾符:

1.修飾類(不能被繼承) 

2.修飾變量(不能被修改)  相當于常量(不能被修改的量) 命名規則 字母全部大寫 ,多單詞下劃線分開

final 變量有兩種指派方式:第一個,直接在類聲明成員變量時給初值 第二個,在構造方法中指派

3.修飾方法(不能被重寫)