多型 引用型別的強制型別轉換 final關鍵字

2021-10-03 07:15:03 字數 1067 閱讀 2530

一. 多型

多型性是oop中的乙個重要特性,主要是用來實現動態聯編的,換句話說,就是程式的最終狀態只有在執行過程中才被決定而非在編譯期間就決定了。這對於大型系統來說能提高系統的靈活性和擴充套件性

: programmer p1 = new chinese(); 建立子類物件 賦值給其父類的引用變數 呼叫方法 如果方法被重寫了 呼叫的就是 子類重寫的方法 ,子類不同 重寫的方法具體的實現也不同

多種實現方式 多種形態 — 多型

programmer p1 = new chinese();

編譯時型別 執行時型別 這行** 引用變數 p1 的 兩種狀態 編譯時 programmer 狀態 執行時 chinese 狀態

多型的好處

減少了方法的過載 即使增加子類 不需要額外提供方法

3.多型的前提:1.繼承是多型的前提2.子類要重寫父類的方法3.父類的引用指向子類的物件4.執行時執行的是子類重寫的方法 就是多型

4.多型運用場景:1.使用父類作為方法的形參 實參可以是任意的子型別2.使用父類

二.引用型別的強制型別轉換

子類轉換為父類:自動型別轉換 上轉型 父類引用 var=子類物件 此時var物件不能操作子類新增的成員變數和方法 可以呼叫子類繼承或重寫的方法

父類轉換為子類就是強制轉換 絕不是做手術,而是父類的真面目就是乙個子類,否則會出現型別轉換錯誤

子類型別 子類引用變數 = (子類型別)父類引用變數;

三. final關鍵字

最後的 最終的 不可改變的 可以修飾類方法變數 final 和abstract是互斥的

final修飾的類不能被繼承 沒有繼承

final修飾的方法不能被子類重寫

final修飾的常量 表示常量 只能被賦值一次

修飾靜態變數 靜態變數只能被賦值一次

修飾例項變數 例項變數只能被賦值一次

修飾區域性變數只能被賦值一次

修飾引用變數只能被賦值一次

注意:final修飾的變數必須被顯式初始化 否則會編譯報錯

final的意義:某些類不是為了繼承而設計的或者不希望別的類繼承 此時使用final修飾符 某些類不希望被重寫 某些變數只希望被複製一次

引用型別強制轉換

多型表現在兩個方面 1.乙個父型別的引用在指向不同的物件時會有不同的實現 如 iunionpay atm atm new atmabc atm new atmcbc 總結,執行時,方法執行看物件!2.乙個子型別物件,向上造型 成不同的父型別時,可以使用的功能不一樣 向上造型 指子類型別的變數,可以自...

多型及其引用型別轉換

1.多型 1 引用多型 父類的引用可以指向本 父類自己的 類的物件 父類的引用可以指向子類的物件 2 方法多型 建立本類物件時,呼叫本類方法 建立子類物件時,呼叫子類重寫的方法 或 繼承的方法 demo 父類 public class animal 子類1 public class cat exte...

java多型和強制型別轉換

子類可以賦值給超類,稱之為向上轉型,這個是自動的。超類不可以賦值給子類,這個是向下轉型,需要我們手動實現。賦值給超類的子類引用在執行期間將表現出不同的特性,這就是多型。小型別 可轉換為 大型別 大型別 轉小型別需要 強制轉換 對於存在繼承關係的強制型別轉換 子類轉換為父類屬於向上塑型,可以直接轉換 ...