java方法覆蓋(當有static的方法時)

2021-08-02 04:29:38 字數 466 閱讀 8507

package test;

public class base

static void staticmethod()

public static void main(string args)

}class sub extends base

static void staticmethod()

輸出結果:

method of sub

static method of base

method of sub

static method of sub

變數sub1和sub2都引用了sub類的例項,sub1.method()和sub2.method()都呼叫了sub例項的method()方法,此時父類的base的method()被子類覆蓋。

當sub1執行staticmethod()時,呼叫的是base類的方法,可見父類的靜態方法不能被子類覆蓋。

Java方法覆蓋

覆蓋方法必須滿足多種約束 1.子類方法的名稱 引數簽名和返回型別必須與父類方法的名稱 引數簽名和返回型別一致 2.子類方法不能縮小父類方法的訪問許可權。但訪問許可權可擴大。比如由預設到public。3.子類方法不能丟擲比父類方法更多的異常。但可以丟擲比父類更少的異常,或不丟擲異常。4.方法覆蓋只存在...

java 方法的覆蓋

1.運用場景 假如有100個類,分別為sub1,sub2,sub3,它們的乙個共同行為是寫字,除了sub1類用腳寫字以外,其餘的類都用手寫字。我們可以抽象出乙個父類base,它有乙個方法write 表示寫字,為了提高 可重用性,write 應該採用大多數子類的實現方式。定義父類如下 public v...

java方法的覆蓋

方法覆蓋,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是對方法進行了宣告,而我們在實現時,就需要實現介面宣告的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點 1 ...