精華區beta java 關於我們 聯絡資訊
※ 引述《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: **]