有些內容使用中英雙語,有些只有英文或中文。歡迎使用與分享任何內容,但先來信告知並標示此部落格為出處。
Some parts use both Chinese and English, but some parts use only one language. Feel free to share, but please contact me first and list this blog as your reference.

2014年5月14日 星期三

JAVA - 什麼是介面? What's interface? (中文)

There's the English version of this article. 這邊有英文版的文章

原本要學習 Design Patterns (設計模式),結果驚覺 JAVA 的 interface超重要,
因為JAVA實在太久沒用了...為了 Design Patterns 先來複習一下interface!

介面(interface)簡單來說,是設計用途!
可先設計一定要被實作(implements)的方法(名字跟回傳型態),而不用先定義程式內容。
聽起來是不是跟abstract的方法很像? 雖然沒有abstract,但他就是!
(可以同時包裝很多抽象的東東!)

多個class可以同時實作相同interface;
一個類別可以同時實作很多interface。
(因為JAVA不提供多重繼承,所以可以用這樣達到類似效果。)

二話不說來看下面範例,雖然很簡單,可能無法表現 interface的精隨。
但是至少可以執行嘛...學習要由簡往繁!

這是interface的設計,設計一個簡單叫聲行為,宣告了sound()函數。


建立動物的class,有建構式跟 toString()。


Cat 貓咪的class,繼承動物而來,並實作介面(SoundBehavior)中的sound()。


執行的主程式~


執行結果:



延伸閱讀:


If you want to use (copy, paste or quote) my original article, please contact me through email (autek.roy@gmail.com). If there is any mistake or comment, please let me know. :D

如要使用(複製貼上或轉載)作者原創文章,請來信跟我聯絡 (autek.roy@gmail.com)。如果有發現任何的錯誤與建議請留言或跟我連絡。 : )
en → zh-TW
歡迎加入這個博客作為參考後使用它。 ( http://autekroy.blogspot.tw )如果有任何錯誤或意見,請讓我知道。 :D 歡迎使用與分享任何內容,但請記得標示此部落格為出處。(http://autekroy.blogspot.tw/)如果有發現任何的錯誤與建議請留言或跟我連絡。 )

沒有留言:

張貼留言

請留下您的任何想法或建議!
Please leave any thought or comment!