程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 淺談java多態的完成重要表現在哪些方面

淺談java多態的完成重要表現在哪些方面

編輯:關於JAVA

淺談java多態的完成重要表現在哪些方面。本站提示廣大學習愛好者:(淺談java多態的完成重要表現在哪些方面)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談java多態的完成重要表現在哪些方面正文


thinking in java3中的多態

People are often confused by other, non-object-oriented features of Java, like method overloading, which are sometimes presented as object-oriented. Don't be fooled: If it isn't late binding, it isn't polymorphism

按文面翻譯

人們老是被java的另外一種非面向對象的特征所迷惑,就像辦法重載,有時刻它以面向對象而存在,請不要犯傻,假如沒有前期綁定(也就是運轉期的靜態綁定),它就不是多態.

所以,這段話要表達的意思就是說,多態要有靜態綁定,不然就不是多態,辦法重載也不是多態(由於辦法重載是編譯期決議好的,沒有前期也就是運轉期的靜態綁定)

當知足這三個前提 1.有繼續  2. 有重寫  3. 要有父類援用指向子類對象

<span > 

例:
public class Address {
private String name;
public Address(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

界說基類(籠統類):
public abstract class Vehicle {
abstract void go(Address address);
}

Car關於基類的完成:
public class Car extends Vehicle{
@Override
public void go(Address address){
System.out.println("Car to " + address.getName());
}
}

Plane關於基類的完成:
public class Plane extends Vehicle{
@Override
void go(Address address) {
System.out.println("Plane to " + address.getName());
}
}


Driver中多態:
public void drive(Vehicle v){ ///多態,父類援用指向子類對象,現實傳過去的是籠統類Vehicle的子類,或許完成類,然後編譯器會依據詳細完成類,來找完成辦法。
v.go(new Address("杭州(abstract)")); ///此辦法在詳細的完成中被重寫
}

Test:
public static void main(String[] args) {
Driver d = new Driver();
d.drive(new Plane()); //現實是Plane對象,則編譯器就會找到Plane中,對go的完成
d.drive(new Car()); //現實是Car對象,則編譯器就會找到Plane中,對go的完成
}

輸入成果:
Plane to 杭州(abstract)
Car to 杭州(abstract)

</span>

多態:就是指雷同的事物的分歧狀況,好比:水。水可以有三種狀況:

氣體、液體和固體。那末在JAVA中的多態也能夠懂得成這個意思,就是:

將父對象設置成為和一個或多個它的子對象相等的技巧,

好比Parent=Child;

多態性使得可以或許應用統一類(父類)援用分歧類的對象,

和依據所援用對象的分歧,以分歧的方法履行雷同的操作。

多態完成包含兩種方法:重載和重寫

例如:Animal a = new Tiger(); 這是一個老話題了,呵呵……

父類援用指向子類對象,Animal類中包括一個eat()辦法,而Tiger類繼續自

Animal類,假如子類重寫了父類的eat()辦法,則挪用的時刻,便可以依照子類

的情勢挪用,實質上是父類的辦法,然則子類重寫以後,就成了另外一種方法,這就是多態。

以上就是小編為年夜家帶來的淺談java多態的完成重要表現在哪些方面的全體內容了,願望對年夜家有所贊助,多多支撐~

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