javaSE學習心得 2 繼承

2021-09-22 02:01:16 字數 1758 閱讀 8263

**1.**繼承的概述

多個類中存在相同屬性和行為時,將這些內容抽取到單獨乙個類中,那麼多個類無需再定義這些屬性和行為,只要繼承那個類即可。

多個類可以稱為子類,單獨這個類稱為父類或者超類。

子類可以直接訪問父類中的非私有的屬性和行為。

通過 extends 關鍵字讓類與類之間產生繼承關係。

繼承的出現提高了**的復用性。

繼承的出現讓類與類之間產生了關係,提供了多型的前提。

2.super關鍵字:

super和this的用法相像

this代表本類物件的引用

super代表父類的記憶體空間的標識。

當子父類出現同名成員時,可以用super進行區分

子類要呼叫父類建構函式時,可以使用super語句。

**3.**函式覆蓋(override)

子類**現與父類一模一樣的方法時,會出現覆蓋操作,也稱為重寫或者複寫。

父類中的私有方法不可以被覆蓋。

在子類覆蓋方法中,繼續使用被重寫的方法可以通過super.函式名獲取。

覆蓋注意事項:

覆蓋時,子類方法許可權一定要大於等於父類方法許可權

靜態只能覆蓋靜態。

覆蓋的應用:

當子類需要父類的功能,而功能主體子類有自己特有內容時,可以複寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容。

4.final關鍵字

final可以修飾類,方法,變數。

final修飾的類不可以被繼承。

final修飾的方法不可以被覆蓋。

final修飾的變數是乙個常量。只能被賦值一次。

內部類只能訪問被final修飾的區域性變數。

**5.**抽象類的特點:

抽象類和抽象方法必須用abstract關鍵字來修飾。

抽象方法只有方法宣告,沒有方法體,定義在抽象類中。

格式:修飾符 abstract 返回值型別 函式名(引數列表) ;

抽象類不可以被例項化,也就是不可以用new建立物件。原因如下:

抽象類是具體事物抽取出來的,本身是不具體的,沒有對應的例項。例如:犬科是乙個抽象的概念,真正存在的是狼和狗。

而且抽象類即使建立了物件,呼叫抽象方法也沒有意義。

抽象類通過其子類例項化,而子類需要覆蓋掉抽象類中所有的抽象方法後才可以建立物件,否則該子類也是抽象類。

**6.**介面的特點:

介面是對外暴露的規則。

介面是程式的功能擴充套件。

介面的出現降低耦合性。

介面可以用來多實現。

類與介面之間是實現關係,而且類可以繼承乙個類的同時實現多個介面。

介面與介面之間可以有繼承關係。

**7.**多型:

1.同乙個物件,在不同時刻體現出來的不同狀態。

2.多型的前提:

1)要有繼承關係或實現關係(介面);

2)要有方法重寫;

3)要有父類或者父介面引用指向子類,如fu fu = new zi();

**8.**內部類:

將乙個類定義在另乙個類的裡面,對裡面那個類。

訪問特點:

內部類可以直接訪問外部類中的成員,包括私有成員。

而外部類要訪問內部類中的成員必須要建立內部類的物件。

內部類定義的位置:

1.內部類定義在成員位置上。

2.內部類定義在區域性位置上。

**9.**匿名內部類

1.就是內部類的簡化寫法。

2.就是建立乙個帶內容的外部類或者介面的子類匿名物件。

javaSE學習心得 3 異常

1.異常的體系 throwable error 通常出現重大問題如 執行的類不存在或者記憶體溢位等。不編寫針對 對其處理 exception 在執行時執行出現的一起情況,可以通過try catch finally exception和error的子類名都是以父類名作為字尾。2.throwable中的...

學習心得2

我一直以為switch.case語句中的case和break之間只能寫一句話,因為以前書上舉得例子一直都是那樣的,所以。呵呵,如今我知道case和break之間可以寫很多句,只要你不嫌亂。而每乙個case和break就相當於是一對大括號,這樣想寫多少隨你了。但是寫的語句太多,會覺得很亂,可讀性比較差...

學習心得(2)

第二次學習心得。10.24 首先說一下 我在上周末自學了高精度演算法,總的來說,其實是利用了陣列和字串來擴大了數字長度 不過不明白python為什麼不會有爆int這種事 並且模擬了豎式計算把大數運算化為若干個小數運算 有點長,不給出了罷 今天自學了點string類的知識 string是乙個類 今天才...