程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中的多態用法實例剖析

Java中的多態用法實例剖析

編輯:關於JAVA

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法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved