1.介面
設計乙個**者介面:healer
該介面宣告有方法: heal()
設計乙個support類,代表輔助英雄,繼承hero類,同時實現了healer這個介面
package pack1;
//繼承hero 同時 實現healer
public
class
support
extends
hero
implements
healer
}
2.物件轉型2.1.引用和物件的型別物件和引用都是有型別的
舉個栗子
person xiaoming=new person();
物件person的型別是person,xiaoming的型別也是person
接下來要討論的型別轉換的問題,指的是引用型別和物件型別不一致的情況下的轉換問題
2.2子類轉父類(向上轉型)
所謂的轉型,是指當引用型別和物件型別不一致的時候,才需要進行型別轉換
型別轉換有時候會成功,有時候會失敗(參考基本型別的型別轉換)
hero h =
newhero()
;//hero(英雄)是子類
adhero ad =
newadhero()
;//adhero(物理攻擊英雄)是父類
h = ad;
//把物理攻擊英雄當作普通英雄使用
2.3父類轉子類(向下轉型)父類轉子類,有的時候行,有的時候不行,所以必須進行強制轉換。
強制轉換的意思就是 轉換有風險,風險自擔。
什麼時候行呢?
1. hero h =
newhero()
//h指向hero
2. adhero ad =
newadhero()
;//ad指向adhero
3. h = ad;
//子類轉父類
4. ad =
(adhero) h;
//h此時指向adhero,父類轉子類,強制型別轉化,可行
沒有繼承關係的兩個類,互相轉換
沒有繼承關係的兩個類,互相轉換,一定會失敗
雖然adhero和aphero都繼承了hero,但是彼此沒有互相繼承關係
「把魔法英雄當做物理英雄來用」,在語義上也是說不通的
介面繼承與實現繼承
所謂介面繼承,就是派生類只繼承函式的介面,也就是宣告 而實現繼承,就是派生類同時繼承函式的介面和實現。我們都很清楚c 中有幾個基本的概念,虛函式 純虛函式 非虛函式。虛函式 虛函式是指乙個類中你希望過載的成員函式,當你用乙個基類指標或引用指向乙個繼承類物件的時候,你呼叫乙個虛函式,實際呼叫的是繼承類...
介面繼承與實現繼承
moakap 所謂介面繼承,就是派生類只繼承函式的介面,也就是宣告 而實現繼承,就是派生類同時繼承函式的介面和實現。我們都很清楚c 中有幾個基本的概念,虛函式 純虛函式 非虛函式。虛函式 虛函式是過載的一種表現形式,是一種動態的過載方式。虛函式是指乙個類中你希望過載的成員函式,當你用乙個基類指標或引...
介面繼承與實現繼承
所謂介面繼承,就是派生類只繼承函式的介面,也就是宣告 而實現繼承,就是派生類同時繼承函式的介面和實現。我們都很清楚c 中有幾個基本的概念,虛函式 純虛函式 非虛函式。虛函式 虛函式是指乙個類中你希望過載的成員函式,當你用乙個基類指標或引用指向乙個繼承類物件的時候,你呼叫乙個虛函式,實際呼叫的是繼承類...