更新時間:2022-06-08 11:27:30 來源:動力節(jié)點 瀏覽2568次
動力節(jié)點小編來給大家舉Java多態(tài)性的例子,多態(tài)性是OOP的功能之一,它允許我們以不同的方式執(zhí)行單個操作。例如,假設(shè)我們有一個Animal有方法的類sound()。因為這是一個通用類,所以我們不能給它一個實現(xiàn),比如:Roar、Meow、Oink 等。我們必須給出一個通用的消息。
public class Animal{ ...
public void sound(){
System.out.println("Animal is making a sound");
}
}
現(xiàn)在假設(shè)我們是 Animal 類的兩個子類:Horse它Cat擴(kuò)展了Animal類。我們可以像這樣為相同的方法提供實現(xiàn):
public class Horse extends Animal { ... @Override public void sound (){ System . 出來。println ( "鄰居" ); } }
和
public class Cat extends Animal{
...
@Override
public void sound(){
System.out.println("Meow");
}
}
正如你所看到的,雖然我們對所有子類都有共同的行動,sound()但有不同的方式來做同樣的行動。這是多態(tài)性的完美示例(允許我們以不同方式執(zhí)行單個操作的功能)。只調(diào)用通用 sound() 方法是沒有任何意義的,因為每個 Animal 都有不同的聲音。因此我們可以說這個方法執(zhí)行的動作是基于對象的類型。
運(yùn)行時多態(tài)示例:
Animal.java
public class Animal{
public void sound(){
System.out.println("Animal is making a sound");
}
}
Horse.java
class Horse extends Animal{
@Override
public void sound(){
System.out.println("Neigh");
}
public static void main(String args[]){
Animal obj = new Horse();
obj.sound();
}
}
輸出:
Neigh
Cat.java
public class Cat extends Animal{
@Override
public void sound(){
System.out.println("Meow");
}
public static void main(String args[]){
Animal obj = new Cat();
obj.sound();
}
}
輸出:
Meow
另一方面,方法重載是一個編譯時多態(tài)性示例。
class Overload
{
void demo (int a)
{
System.out.println ("a: " + a);
}
void demo (int a, int b)
{
System.out.println ("a and b: " + a + "," + b);
}
double demo(double a) {
System.out.println("double a: " + a);
return a*a;
}
}
class MethodOverloading
{
public static void main (String args [])
{
Overload Obj = new Overload();
double result;
Obj .demo(10);
Obj .demo(10, 20);
result = Obj .demo(5.5);
System.out.println("O/P : " + result);
}
}
這里方法demo()重載了 3 次:第一個方法有 1 個 int 參數(shù),第二個方法有 2 個 int 參數(shù),第三個方法有 double 參數(shù)。調(diào)用哪個方法取決于我們在調(diào)用方法時傳遞的參數(shù)。這發(fā)生在運(yùn)行編譯時,因此這種類型的多態(tài)性稱為編譯時多態(tài)性。
輸出:
a : 10
a和b : 10 , 20雙a : 5.5
O / P : 30.25
以上就是小編舉的Java多態(tài)性的例子,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點的Java視頻教程,里面的課程內(nèi)容從入門到精通,細(xì)致全面,通俗易懂,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對大家能夠有所幫助哦。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743