介面與繼承

2021-10-18 13:26:21 字數 1486 閱讀 8510

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 中有幾個基本的概念,虛函式 純虛函式 非虛函式。虛函式 虛函式是指乙個類中你希望過載的成員函式,當你用乙個基類指標或引用指向乙個繼承類物件的時候,你呼叫乙個虛函式,實際呼叫的是繼承類...