多型以及型別轉換

2022-08-30 05:03:11 字數 753 閱讀 1998

向上轉型:

平行四邊形也是一種型別的四邊形,所以可以將平行四邊形類的物件看作是乙個四邊形類的物件。

這就相當於「quadrangle obj = new parallelogram();」,就是把子類的物件賦值給父類型別的變數,這種技術稱為「向上轉型」。

由於向上轉型是從乙個較具體的類到較抽象的類之間的轉換,所以它總是安全的。(如可以說平行四邊形是特殊的四邊形,但是不能說四邊形是平行四邊形)

向下轉型:

通過向上轉型可以推理出向下轉型是將較為抽象的類轉換為具體的類。這樣的轉型通常會出現問題。

可以說子類物件總是父類的乙個例項,但是父類物件不一定是子類的例項。

public class parallelogram extends quadrange{

public static void main(string args){

draw(new parallelogram());

//將平行四邊形類物件看做四邊形物件,稱為向上轉型操作

quadrangle q = new parallelogram();

//parallelogram p = q;

//將父類物件賦予子類物件,這種寫法是錯誤的。

//將父類物件賦予子類物件,並強制轉換為子型別,這種寫法是正確的。

parallelogram p = (parallelogram) q;

多型:子類的物件賦值給父類型別的變數。

如:quadrangle q = new square(); 

可選型別以及型別轉換

乙個變數要麼有值,要麼沒值。語法定義 let name string?nil。只有可選型別的可以賦值nil。怎麼使用 var num int?0 num nil if num nilvar num int?0 num nil if let result numfunc check number in...

多型及其引用型別轉換

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

8 多型物件的型別轉換

在你接收父類的乙個引用時,你可以通過使用 instanceof 運算子判定該物件實際上是你所要的子類,並可以用型別轉換該引用的辦法來恢復物件的全部功能。public void method employee e rest of operation 如果不用強制型別轉換,那麼引用 e.departme...