向上轉型:一般為父類引用指向子類物件,父類引用可以呼叫子類重寫或者未重寫的方法,但是不能呼叫子類的特有方法,呼叫的屬性為父類的屬性。
animal a=new dog();
castclass(a,a.name);
向下造型:一般為子類引用指向父類物件,但是父類物件一般為本子類的向上轉型,否則會出現classcasteexception異常,此異常一般為子類的引用直接指向了父類的物件。
//向下轉型報錯
dog d= (dog) new animal();
d.eat("測試")
意義:當乙個方法在子類中進行重寫的時候,呼叫不同的子類可能需要new物件很多次,再呼叫對應的方法,會出現很多的**重複,對於**結構來說很不好看。
/**
* @author lsd
* 向上和向下造型的理解
*/package com;
public class testextends
static void castclass(animal a,string name)
}class animal
}class mammal extends animal
public void see()
}class dog extends animal
}
向上造型與向下造型
父類引用 變數 new 子類物件 必須有繼承關係 子類對父類方法進行重寫 通過父類型別的引用變數呼叫子類重寫之後的方法 向上造型的物件可以呼叫哪些方法看父類,具體的方法執行看子類 父類 目錄 子類 正文 案例 public class main public static void m pet p ...
繼承 向上造型
物件導向程式設計的三 四 大特徵 抽象 封裝 繼承 多型 1 什麼是繼承 繼承是物件導向程式設計中一種 復用的方式 2 為什麼要使用繼承 為了減少程式中的 冗餘,提高程式的可維護性和可擴充套件性 3 怎樣使用繼承格式 class 類名 a extends 類名 b 類a中可以使用類b中的屬性和方法,...
向上造型的物件
方法重寫規則 方法名相同,引數型別相同 子類返回型別小於等於父類方法返回型別,子類丟擲異常小於等於父類方法丟擲異常,子類訪問許可權大於等於父類方法訪問許可權。向上造型的物件呼叫重寫的方法 public static void main string args class super public v...