誰能給我完美的解釋 JAVA的 ”多型” 的意思和用法?

我看了三本書裡的說明、看了網路上的說明,腦袋裡還是 \"非常\" 模糊,我希望說明時最好能簡單明瞭,並且沒有漏掉的地方,希望有人能替我解答,謝謝!

5 Answers

Rating
  • 1 decade ago
    Best Answer

    多型就是...見人說人話,見鬼說鬼話

    就像這樣說好了

    今天你上班遲到

    老闆問你說:你今天怎麼會遲到

    那你可能說:都是塞車惹的禍

    同樣的問題

    換成是同事問你:你今天怎麼會遲到

    你就可能這樣回答:老實說,今天睡過頭...

    就有點類似這樣的東西

    同樣一個問題、一件事

    對同個人來說會有不同的作法

    至於怎麼用,簡單舉個例子

    public interface Problem

    {

    public String say();

    }

    public class AnsToBoss implements Problem

    {

    public String say()

    {

    return "都是塞車惹的禍";

    }

    }

    public class AnsToColleague implements Problem

    {

    public String say()

    {

    return "老實說,今天睡過頭...";

    }

    }

    不知道這樣你看懂沒??

    我打程式可能有手誤XD

    因為eclipse 用太多了XD

    加油

    2006-02-15 00:00:20 補充:

    藍大

    就像你說的

    那就是你說的多載overloading

    多型則是polymorphism

  • 1 decade ago

    可能這樣還看不出來多型

    假設我們的程式這樣寫:

    Problem a;

    if (...)

    a = new AnsToBoss();

    else

    a = new AnsToColleague();

    System.out.println(a.say());

    這時候會根據上面a指到哪種類別會有不同的輸出

    2006-02-25 12:26:48 補充:

    另外

    如果是:

    Problem a[] = new Problem[10];

    .....(指定每個陣列裡的物件)

    for (int i=0;i<10;i++)

    System.out.println(a.say());

    會根據陣列裡的物件類別會印"都是塞車惹的禍"或"老實說,今天睡過頭..."

  • 1 decade ago

    "多型"(Polymorphism)是物件導向程式設計的基本方法,JAVA是眾多支援物件導向程式設計的程式語言之一,以下,我就物件導向程式設計的基本概念,整理條列於下,希望對您有所幫助^^。

    何謂物件導向程式設計(Obiect Oriented Programming,OOP)?

    *屬於一種程式設計的範式(paradigm),範式的意思就是(某個時期)被廣泛遵循與研究的科學方法。

    *提供封裝、繼承與多型三種以物件為主題,並分別解決不同面向問題的程式設計方法。

    *架構於結構化程式設計方法(Structured Programming)之上,並提供更優異的模組化功能。

    *封裝法主張程式模組製作者將全域變數與自訂函數群封裝成一個類別,讓模組間的耦合程度(coupling)減小,模組內的功能更為完整,高內聚(cohesion)低耦合的模組化開發環境,更有利於多人合作的情境(scenario)。

    *繼承法主要著重點在於程式碼的重覆使用(reusabilty),透過繼承已有程式碼再客製化(customize)可減少無謂的作業(tedious work)。

    *多型法使開發出來的軟體可輕易克服異質性的環境,著重點在於動態連結技術(Dynamic Linking),利用固定的函數呼叫,可驅動不同的程式碼,如此軟體不必修改,靠動態載入相對應的程式,即可適應相同行為但可能有多種運作方式的機制。

    2006-02-22 10:54:02 補充:

    因為是解釋多型的意思,所以多補充一點有關的想法,我有看到蔡學鏞的文章說繼承法跟多型法其實都跟reusability有關,他說,繼承法主要是軟體"實作"上程式碼的重用,多型法主要是軟體整體"設計"上的重用,這跟我的整理基本上概念一樣。基本上物件多型就是為了讓軟體有更高的擴充性與更好的使用彈性。EX.您可以把軟體本身想成是電動玩具的主機,利用多型法開發的主機可以經由固定的讀取"介面"來讀取不同遊戲CD或卡匣,JAVA不是有一個關鍵字叫"interface",就是這個意思。

    Source(s): 若有錯誤的地方,煩請高手前輩指正^^
  • Anonymous
    1 decade ago

    樓上這位大大,你回答的應該算是界面跟實做吧

    因為中文裡面,對於多型有很多種說法,我不知道你指的跟我說的一不一樣

    overloading(多型,多載...中文翻譯名稱有很多個)

    定義=>一個類別有一個以上同名的函式,稱為overloading

    例如

    class point{

    int color;

    public point(){

    color = 0;

    }

    public point(int a){

    color=a;

    }

    }

    這時候,上面的class裡面有二個建構子名子都叫做point,那這種情況就叫做overloading

    使用的時候可以這樣

    point a=new point(10);

    point b=new point();

    那a.color=10

    b.color=0

    Source(s): me
  • How do you think about the answers? You can sign in to vote the answer.
  • 1 decade ago

    大大~請參考以下網址吧~有說到多型的~

    http://tw.knowledge.yahoo.com/question/?qid=120507...

Still have questions? Get your answers by asking now.