※ 引述《SmartRoy.bbs@binary.csie.ncu.edu.tw (OO)》之銘言:
> 請問一下,抽象類別的好處是什麼?
> 假設 Class Dog extends Animal
> Class Cat extends Animal
> Dog 和 Cat 裡都有一個 method 叫 public void sound(){...}
> 那只要在 Animal 裡定義一個空的 public void sound(){} 不是
> 一樣也可以嗎?那定義成抽象類別的好處到底是什麼 @@?
好處就是一個動物陣列都會叫:
你養了一群動物:
Animal [] myPats = new Animal[10];
myPats[0] = new Dog();
myPats[1] = new Cat();
myPats[2] = new Pig();
…
好,寵物們,全部叫一次來聽聽看:
for(int i=0; i!=myPats.length; ++i) myPats[i].sound();
--
┌─────◆程式設計樂園◆─────┐KKMAN團隊 全新力作 ◎◎KKBOX◎◎
│ CSZone.kkcity.com.tw │知名歌手通通都有 所有新歌想聽就聽
└──《From:140.111.126.20 》──┘※※ 內容豐富多元的線上音樂台 ※※
> -------------------------------------------------------------------------- <
發信人: Eskimos.bbs@bbs.ntu.edu.tw (如果你愛我), 看板: java
標 題: Re: 抽象類別的好處?
發信站: 台大計中椰林風情站 (Fri Jul 30 09:20:09 2004)
轉信站: ptt!ctu-reader!ctu-peer!news.nctu!news.cis.nctu!news.ee.ttu!news.ntu!P
因為這樣可以強迫繼承者一定要實做這個方法...
萬一你寫了一種動物忘記寫他的sound()時,
你的編譯器才會提醒你,嘿,你忘了告訴我這支動物怎麼叫。
==> SmartRoy.bbs@binary.csie.ncu.edu.tw (OO) 提到:
> ※ 引述《Corroson@kkcity.com.tw (藍月楓鈴)》之銘言:
> : 好處就是一個動物陣列都會叫:
> : 你養了一群動物:
> : Animal [] myPats = new Animal[10];
> : myPats[0] = new Dog();
> : myPats[1] = new Cat();
> : myPats[2] = new Pig();
> : …
> : 好,寵物們,全部叫一次來聽聽看:
> : for(int i=0; i!=myPats.length; ++i) myPats[i].sound();
> 我的意思是....
> 可以不用把 Animal 宣告成抽象類別,只要在 Animal 類別裡加個
> 空的 public void sound(){} ,然後在子類別中實作sound()
> 一樣可以讓一個動物陣列叫到啞....
> 這樣何必要把 Animal 宣告成抽象? XD?
--
☆ [Origin:椰林風情] [From: 203.66.239.177] [Login: **] [Post: **]