Java super和final關鍵字

2021-08-31 18:49:18 字數 1492 閱讀 5903

1 、super用於方法

《1》用於構造方法(重要)——super(引數列表)

當子類呼叫父類無參構造方法時,super()可寫可不寫;表示呼叫父類無參構造。

當子類呼叫父類有參構造方法時,super(引數列表)必須要寫,要告訴編譯器當前呼叫的是那個有參構造。

注意:

a. 子類構造方法中呼叫父類構造必須是第一行

b.this與super不能同時呼叫

《2》用於普通方法

用法:super.方法名(引數)

用於在子類中明確呼叫父類中被覆寫的方法

2 、super用於屬性(了解)

用法:super.屬性名

表示呼叫父類中被覆寫的屬性,許可權不是private

當乙個類被final修飾,表示該類不可以擁有子類(不允許有繼承);

一旦乙個類被final修飾,該類的所有方法都會預設加上final(成員變數不會加final)

《1》 final修飾方法

當乙個方法被final修飾,明確表示該方法不允許被覆寫

當乙個方法被private修飾後,相當於加了乙個final關鍵字

《2》 final修飾屬性——常量

1.final修飾普通資料型別的成員變數(最主要的用途)

被final修飾的成員變數:

①必須在宣告時初始化,並且初始化後值無法被修改;

②也可在構造塊或構造方法中初始化

** 注意區分**

public final int a=10;(棧中)

public static int b=20;(全域性資料區,共享)

final 變數——是常量,每個物件都有自己的final變數,在每個物件產生時初始化;

static final——全域性變數,所有物件共享,在類載入時初始化,效率較高,通過類名呼叫

全域性變數命名規範:

多個單詞全大寫,單詞之間用_分隔

初始化全域性變數方法:在靜態**塊中初始化

2、final修飾引用資料型別的變數(值不能改變)

eg:class person

public static void main()

3、final修飾的引用變數,資料型別也不可變

解析:出錯的是——語句1,3,4

語句1——b1,b2都為int型,b3為byte可能丟失資料——錯誤

語句2——b1為int型,b4為byte切不可變,故不能提公升為int,錯誤

語句3——同上

Final類和Final方法

終止繼承 final類 當關鍵字final用來修飾類時,其含義是該類不能在派生子類。換句話說,任何其他類都不能繼承用final修飾的類,即使該類的訪問限制為public型別,也不能被繼承 否則,將編譯報錯。可以繼承的其他類。什麼時候應該使用final修飾類呢?只有當需要確保類中的所有方法都不被重寫時...

java super 的使用注意

class testthread extends thread public void run catch interruptedexception exception system.out.println getname finished public class helloworld exten...

Java super關鍵字詳解

一.super關鍵字作用 1 主要存在於子類方法中,用於指向子類物件中父類物件。2 訪問父類的屬性 3 訪問父類的函式 4 訪問父類的建構函式 二.super注意的地方 this和super很像,this指向的是當前物件的呼叫,super指向的是當前呼叫物件的父類。類載入完畢,建立物件,父類的構造方...