Discussion:
[問題]物件多型的問題
(时间太久无法回复)
海天一線(Man,24)
2007-03-13 08:00:50 UTC
Permalink
書上說

Man man=new Manager(); //第一行

上面這行等同於下面這行

Man man=(Manager)new Man(); //第二行

繼承關係是
class Manager extends Man
{
....
}

如果按照父類別物件不能轉型為子類別物件的原則來說

為何第一行不等於以下這行??

Man man=n(Man)ew Manager();

到底是哪裡弄錯了??

請大家不吝指教~謝謝各位!

--
┌─────◆KKCITY◆─────┐ ◢╱ 只要你通過身份認證 ~ ◥█
│ bbs.kkcity.com.tw │ █▉─ 免經驗、五人連署即開班系板 ◥
└──《From:211.74.74.6 》──┘ ◥╲ 趕快為班上設個秘密基地吧! ◢
--
Alien
2007-03-13 08:48:15 UTC
Permalink
※ 引述《***@kkcity.com.tw (海天一線(Man,24))》之銘言:
: 書上說
: Man man=new Manager(); //第一行
: 上面這行等同於下面這行
: Man man=(Manager)new Man(); //第二行
: 繼承關係是
: class Manager extends Man
: {
: ....
: }
: 如果按照父類別物件不能轉型為子類別物件的原則來說
: 為何第一行不等於以下這行??
: Man man=n(Man)ew Manager();
: 到底是哪裡弄錯了??
: 請大家不吝指教~謝謝各位!

Manager 是一個 Man
但 Man 不一定是一個 Manager

Man man = (Man) new Manager();
沒有問題, 因為 Manager 是一個 Man,
所以你可以把 Manager 當成 Man 看
(轉型成 Man)

Alien

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.22.246.26

Loading...