更新時間:2022-10-10 09:23:58 來源:動力節(jié)點 瀏覽2110次
在java多態(tài)中主要由以下兩種表現(xiàn)方式:
同一個方法中有多個同名的方法,但這些方法有不同的參數(shù)。因此在編譯時,就可以確定到底調(diào)用哪個方法。它是一種編譯時多態(tài)。重載可以被看做一個類中的方法多態(tài)性。
子類可以覆蓋父類的方法,因此同樣的方法會在父類和子類中有著不同的表現(xiàn)形式。 在java語言中,基類的引用變量不僅可以指向基類的實例對象,也可以指向其子類的實例對象。同時,接口的引用變量也可以指向其實現(xiàn)類的實例對象。這樣就可以實現(xiàn)動態(tài)綁定。 這樣就只有運行時才能確定調(diào)用哪個方法,因此通過方法覆蓋實現(xiàn)的多態(tài)也可以被稱為運行時多態(tài)。
類中的方法有多態(tài)的概念,類中的成員變量沒有多態(tài)的概念。
如下代碼, 打印的結(jié)果是1, 成員變量的取值是父類還是子類并不取決于創(chuàng)建對象的類型,而是取決于所定義變量的類型,這是在編譯期間決定的。
import org.junit.Test;
public class Base {
public int i = 1;
@Test
public void test(){
Base b = new Derived();
System.out.println(b.i);// b所屬的類型是Base, b.i指的是Base類中定義的i
}
}
class Derived extends Base{
public int i = 2;
}
以上就是關(guān)于“一文讀懂Java實現(xiàn)多態(tài)的機(jī)制”介紹,大家如果想了解更多相關(guān)知識,不妨來關(guān)注一下本站的Java教程,里面還有更豐富的知識等著大家去學(xué)習(xí),希望對大家能夠有所幫助。
初級 202925
初級 203221
初級 202629
初級 203743