Discussion:
[問題] 隱藏父類別的成員資料用意是什麼呢?
(时间太久无法回复)
Krel
2007-04-11 15:12:44 UTC
Permalink
請問當 子類別 類別方法名稱和 父類別 類別方法名稱 相同時

能隱藏父類別成員資料。
^^^^^^^^^^^^^^^^^^^^ <-----請問這是什意思(例如有什麼功用,
能有個小例子說明
一下嗎?)




麻煩各位嘍。 ^^

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.68.10
ArssertionError
2007-04-12 00:48:29 UTC
Permalink
※ 引述《martone (Krel)》之銘言:
: 請問當 子類別 類別方法名稱和 父類別 類別方法名稱 相同時
: 能隱藏父類別成員資料。
: ^^^^^^^^^^^^^^^^^^^^ <-----請問這是什意思(例如有什麼功用,
: 能有個小例子說明
: 一下嗎?)
: 麻煩各位嘍。 ^^
看了五分鐘後才看懂你想問什麼


你說的東西叫做覆寫
也就是子類別與父類別方法名稱相同 傳入參數相同
舉個例子好了

class A {
void Amethod(){
System.out.println("A");
}
}

class B extends A{
void Amethod(){//在這裡覆寫了A類別的方法
System.out.println("B");
}
}

class C extends B{
public static void main(String args[]){
A a1 = new A();
A a2 = new B();
a1.Amethod();//這時候會印出A
a2.Amethod();//這時候會印出B
}
}

另外
在繼承抽象類別或實作介面時
"一定"要覆寫所有抽象方法
除非子類別也為抽象類別或介面

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.113.73.192
Krel
2007-04-12 01:43:30 UTC
Permalink
※ 引述《DavyBlue (ArssertionError)》之銘言:
: ※ 引述《martone (Krel)》之銘言:
: : 請問當 子類別 類別方法名稱和 父類別 類別方法名稱 相同時
: : 能隱藏父類別成員資料。
: : ^^^^^^^^^^^^^^^^^^^^ <-----請問這是什意思(例如有什麼功用,
: : 能有個小例子說明
: : 一下嗎?)
: : 麻煩各位嘍。 ^^


感謝上位回應的版友,他回應了覆寫的義意,但我不明瞭的是"隱藏"

舉例如下:

class partA
{
public static void printName()
{
System.out.println("Car");
{
public int serial;
}

class partB extends partA
{
public static void printName()
{
System.out.println("train");
}
public double serial;
}

當方法有static時,為類別方法(父、子類別名稱同便為隱藏)

沒有static時則為實例方法(也就會變成覆寫)

小弟想請問,隱藏使用的目的和時機到底是什麼呢? ^^

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.53.115
愚人
2007-04-12 01:48:25 UTC
Permalink
※ 引述《DavyBlue (ArssertionError)》之銘言:
: ※ 引述《martone (Krel)》之銘言:
: : 請問當 子類別 類別方法名稱和 父類別 類別方法名稱 相同時
: : 能隱藏父類別成員資料。
: : ^^^^^^^^^^^^^^^^^^^^ <-----請問這是什意思(例如有什麼功用,
: : 能有個小例子說明
: : 一下嗎?)
: : 麻煩各位嘍。 ^^
: 看了五分鐘後才看懂你想問什麼
: 你說的東西叫做覆寫
: 也就是子類別與父類別方法名稱相同 傳入參數相同
: 舉個例子好了



看來又一個人掉進陷井

弟是想不出有什麼情況一定要用所以沒有回應 囧rz

線索 1: 類別方法名稱

線索 2: 隱藏父類別


是類別的方法 --> static method

是類別的成員 --> static member

是隱藏父類別的xxx --> static


================================================

依您回答的答案要將題目改為:

請問當 子類別 方法名稱和 父類別 方法名稱 相同時
能覆寫父類別成員資料

================================================

不過俺還是不知有什麼情況適合利這種現象

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.100.235
淺水中
2007-04-12 04:43:38 UTC
Permalink
※ 引述《martone (Krel)》之銘言:
: 請問當 子類別 類別方法名稱和 父類別 類別方法名稱 相同時
: 能隱藏父類別成員資料。
: ^^^^^^^^^^^^^^^^^^^^ <-----請問這是什意思(例如有什麼功用,
: 能有個小例子說明
: 一下嗎?)
: 麻煩各位嘍。 ^^
物件導向常常這樣用
舉個例子好了
假設有3個類別是
Packet,TCPPacket,UDPPacket
TCP和UDP繼承至Packet而來
裡面的Data Member分別是Header欄位的資料
又每個Class都有toString這個Method
功能分別是把Packet的Header印出來
其中又有一個PacketFactory Class會去Lan上面抓取封包並轉成適當的類別
但是它只Return Packet這個型態回來
如果有以上你提到的功能"子類別 類別方法名稱和 父類別 類別方法名稱 相同時
: 能隱藏父類別成員資料"

這時候你不需要理會Packet的真實型態是啥
只要call toString()一定會呼叫到正確的類別方法
但如果這時候你要去access父類別的data member是不可以的
因為型態不允許...


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

继续阅读narkive:
Loading...