Discussion:
[問題] Heterogeneous(異質)機制
(时间太久无法回复)
骨頭
2007-03-31 07:11:37 UTC
Permalink
: 0
: 是因為Base的default constructor都會把member attribute都設成0嗎?

應該說 int 如果沒給起始值,會自動給 0 .

: 還有如果我不加入那個showData()
: 錯的原因是因為這種Heterogeneous機制
: Base a_base=new Derive();
: a_base只能呼叫Base裡面的method嗎?

因為它把a_base當成 Base類別的 instance,
所以他只能使用Base類別裡的method,

它的可見範圍就只有Base和 super class (Object) 裡面的東西。


不過你也可以透過轉型的方式使用啦,
適不適用只端看你的使用需求。

Base a_base;
a_base=new Derive();
((Derive)a_base).showData();

這樣就不需要加上showData在Base內了

--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68
我要買車啦
2007-03-31 15:14:00 UTC
Permalink
※ 引述《TonyQ (骨頭)》之銘言:
: : 0
: : 是因為Base的default constructor都會把member attribute都設成0嗎?
: 應該說 int 如果沒給起始值,會自動給 0 .
: : 還有如果我不加入那個showData()
: : 錯的原因是因為這種Heterogeneous機制
: : Base a_base=new Derive();
: : a_base只能呼叫Base裡面的method嗎?
: 因為它把a_base當成 Base類別的 instance,
: 所以他只能使用Base類別裡的method,
: 它的可見範圍就只有Base和 super class (Object) 裡面的東西。
: 不過你也可以透過轉型的方式使用啦,
: 適不適用只端看你的使用需求。
: Base a_base;
: a_base=new Derive();
: ((Derive)a_base).showData();
: 這樣就不需要加上showData在Base內了
那在請問這跟Heterogeneous機制有沒有關係?
這是後面習題 看起來跟Heter...比較像
因為我的課本是寫Heterogeneous陣列機制
範例是這樣的
class Teacher extends Person
class Student extends Person

Person PerArr[]=new Person[3];
PerArr[0]=new Student();
PerArr[1]=new Teacher();
PerArr[2]=new Student();

不知道這習題是不是在考這個?
還有請問這機制有哪些重點阿?
看了半天
只知道
father class的Ref可以Ref to child class?
謝謝瞜

--

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.124.205
※ 編輯: walm20 來自: 218.169.124.205 (03/31 23:13)
愚人
2007-03-31 15:45:39 UTC
Permalink
※ 引述《walm20 (我要買車啦)》之銘言:
: 那在請問這跟Heterogeneous機制有沒有關係?
: 這是後面習題 看起來跟Heter...比較像
: 因為我的課本是寫Heterogeneous陣列機制
: 範例是這樣的
: class Teacher extends Person
: class Student extends Person
: Person PerArr[]=new Person[3];
: PerArr[0]=new Student();
: PerArr[1]=new Teacher();
: PerArr[2]=new Student();
: 不知道這習題是不是在考這個?
: 還有請問這機制有哪些重點阿?
: 看了半天
: 只知道
: father class的Ref可以Ref to child class?
: 謝謝瞜

忘了你的課本,看一下 311 頁開始的多型
http://jjhou.csdn.net/jjtbooks-thinking-in-java-2e.htm
要教多型就寫多型就好,還弄個陣列混淆了您 囧

如果不能接受樂器的講法可以參考 justin 的 blog
http://caterpillar.onlyfun.net/Gossip/JavaGossip-V1/JavaGossip.htm

或是別人學習多型後,自省的文章
http://www.javaworld.com.tw/jute/post/view?b
id=29&id=116021&tpg=1&ppg=1&sty=1&age=0#116021

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

Loading...