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