向上轉型:子類引用的對象轉換爲父類類型稱爲向上轉型。通俗地說就是是將子類對象轉爲父類對象。此處父類對象可以是接口
向下轉型:父類引用的對象轉換爲子類類型稱爲向下轉型。
如以下案例
public class A {
public static void main(String[] args) {
Person person = new Son();//向上轉型
person.name();//向上轉型的方法只有name方法,找不到Age方法
// Son sonerror = (Son) new Person();//錯誤的向下轉型,編譯通過,運行報錯
// sonerror.Age();
if(person instanceof Son)
{
Son son = (Son) person;//正確的向下轉型
son.Age();
son.name();
}
}
}
class Person{
void name(){
System.out.println("this is Person name");
}
}
class Son extends Person{
@Override
void name() {
System.out.println("this is Son name");
}
void Age(){
System.out.println("this is Son age");
}
}