public
class father
void f2()
public
static
void
main(string args)
}class son extends father
protected
void
f2()
}
輸出:
father f1()
son f2()
解析:父類引用指向子類物件,重寫 f1,f2方法,咋一看,是動態繫結,其實不然
一:f1方法
父類中是private,子類是public, 我們知道子類在重寫父類方法是訪問許可權不能縮小,因此不是重寫,父類中是私有的,子類也不能繼承。
在這裡父類和子類的f1方法沒有任何關係,只能說明恰巧兩個方法同名
罷了。f2方法
子類重寫父類的f2的方法,屬於動態繫結,因此呼叫的是子類方法!
這裡子類擴大的訪問許可權(從包訪問許可權到protected)
方法的過載 繼承 重寫
方法的過載 在乙個類中,方法名稱相同,引數列表不同,與返回值無關的方法,叫做方法的過載.什麼是繼承 子類可以繼承父類共有的屬性和方法.繼承關鍵字是 extends 子類不能繼承父類的構造方法.也就是說super 不是繼承,是呼叫.繼承的優點 實現類的重用,減少 的冗餘.子類繼承了父類後 子類可以訪問...
java 繼承 重寫
package inheritance.override 1 先開闢空間 2 再呼叫構造器 父類宣告賦值 父類構造器 子類宣告賦值 子類構造器 3 返回位址 屬性 就近原則 父類中的方法 如果重寫 找重寫,沒有重寫 找父類 新增不可見 先編譯後執行 編譯 從 所屬的當前類中向上找object 就近最...
繼承 重寫 super
繼承 extends,子類自動擁有父類的所有可繼承的屬性和方法。只支援單繼承,不可多重繼承,如 extends a,b 是錯誤的。可以多層繼承。重寫 子類重寫父類的方法時,不能使用比父類中被重寫的方法更嚴格的訪問許可權。super 1 呼叫父類成員變數 成員方法 super.成員變數 super.成...