Java中的多態用法實例剖析。本站提示廣大學習愛好者:(Java中的多態用法實例剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的多態用法實例剖析正文
本文實例講述了Java中的多態用法。分享給年夜家供年夜家參考。詳細剖析以下:
多態,是面向對象的法式設計說話最焦點的特點。封裝性、繼續性都比擬簡略,所以這裡只對多態做一個小小的筆記。。。
1、甚麼是多態?
多態意味著一個對象可以多重特點,可以在特定的情形下,表示出分歧的狀況,從而應對分歧的屬性和辦法。在Java中,多態的完成指的是應用統一個完成接口,以完成分歧的對象實例。
例如,我們界說一個Parent類,再界說一個getName()辦法前往一個字符串,界說一個形參為Parent類型的成員辦法doSomething(Parent obj),在這個辦法中挪用obj.getName()。然後再界說兩個類A和B,都從Parent類繼續而來,在子類中重寫getName()辦法。最初在main辦法中創立一個Parent類的對象objP,挪用objP.doSomething()辦法並向其傳遞class A,和class B 的援用。不雅察輸入成果。
class Parent { private String name = "parent"; public String getName() { return this.name; } public void doSomething(Parent obj) { //輸入類名 System.out.println(obj.getName()); } public static void main(String[] args) { Parent objP = new Parent(); objP.doSomething(new A()); // 傳遞A的援用,則挪用的是A類的getName辦法 objP.doSomething(new B()); // 傳遞B的援用,則挪用的是B類的getName辦法 } } class A extends Parent { private String name = "class A"; //@重寫getName()辦法 public String getName() { return this.name; } } class B extends Parent { private String name = "class B"; //@重寫getName()辦法 public String getName() { return this.name; } }
可見,父類的doSomething辦法多態地挪用了我們傳遞的對象的getName辦法,而不是Parent類自己的getName辦法。
2、Java中的接口
Java中的接口,是一系列辦法的聲明。一個接口只要辦法的特點,而沒無方法的完成。這些辦法可以從別處經由過程特定的類來完成。在Java中,用症結字interface來聲明一個接口。
用接話柄現多態的實例:
interface Name { //只聲明,不完成 public String getName(); } class A implements Name { private String name = "class A"; //完成getName辦法 public String getName() { return name; } } class B implements Name { private String name = "class B"; //完成getName辦法 public String getName() { return name; } public static void main(String[] args) { Name obj = new A(); System.out.println(obj.getName()); } }
可以看到,打印出了類A的名字class A。
PS:一個類假如沒有完成接口中的一切辦法,那末這個類必需被聲明為abstract(籠統的)。一個abstract類是不許可實例化對象的。
願望本文所述對年夜家的java法式設計有所贊助。