向上轉型

向上轉型

向上轉型,JAVA中的一種調用方式。向上轉型是對A的對象的方法的擴充,即A的對象可訪問B從A中繼承來的和B複寫A的方法。

詞條簡介

這是面向對象(c# Java AS3.0)編程(oop)中多態的方面,分為向上轉型和向下轉型。

假定父類為 動物,子類為狗,父類有一個方法發聲(),狗繼承並覆蓋了一個發聲方法。在子類重寫該方法

則(以下過程c#實現):動物 a=new 狗();//這就為向上轉型a.發聲();

在調用 a.發聲();時調用的是狗的發聲()也可調動物類其他方法 但不能調用狗類方法

若修改為動物 a=new 狗();

狗b=(狗)a;//這裡向下轉型

這時b可調用動物類未被重寫的方法和狗類所有方法(包括重寫動物類的方法)

向上轉型都會成功,是安全的。 就像說狗是動物沒問題。

接上面

動物 a=new 動物();

a.發聲();//調動物類方法

狗 b=(狗)a;//這也是向下轉型 但下面通過b若調用 動物 或 狗類中任意方法都報異常

也就是說向下轉型可能會出錯 不能說動物是狗

程式調用方式

JAVA 中的一種調用方式

class A{

void f(){}

void g(){}

}

class B extends A{

void g(){}

void i(){}

}

public class C{

public static void main(String[] args){

A a=new B(); //B自動向上轉型為A的對象

}

}

向上轉型並非是將B自動向上轉型為A的對象,相反它是從另一種角度去理解向上兩字的:它是對A的對象的方法的擴充,即A的對象可訪問B從A中繼承來的和B複寫A的方法。其它的方法都不能訪問。即使是A 中的私有成員方法。

相關詞條

熱門詞條

聯絡我們