**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是乙個類 今天才...