覆寫:如果子類定義了與父類相同的屬性或方法,這個操作就稱為覆寫
方法的覆寫:子類定義了與父類方法名稱,引數型別,及個數完全相同的方法,但是覆寫不能有比父類更嚴格的訪問控制許可權
觀察簡單覆寫
package testoverride;
/** * author:weiwei
* description:簡單的覆寫
* creat:2019/3/28
**/class person
}class student extends person
public static class print
}public class testoverride1
}
注意:
覆寫的時候要注意當前物件是通過哪個類new的
當呼叫某個方法時,如果這個方法已經被子類覆寫了,那麼呼叫的一定是被覆寫過的方法
觀察錯誤覆寫
package testoverride;
/** * author:weiwei
* description:錯誤覆寫
* creat:2019/3/28
**/class person
}class student extends person
public static class print
}public class testoverride1
}
建議:
以後寫方法時,99%的情況下覆寫都用public
寫屬性時,98%的情況下用private
(重點)過載與覆寫的區別 :
no區別
過載(overload)
覆寫(override)1概念
方法名稱相同,引數列表(型別,個數)不同
方法名稱,返回值型別,引數的型別及個數完全相同2範圍
乙個類繼承關係3限制
無訪問許可權控制
被覆寫的方法不能有比父類更嚴格的訪問控制許可權
覆寫的兩同兩小一大原則:
當子類定義了與父類屬性名稱完全相同的屬性的時候,就稱為屬性覆寫
觀察屬性覆寫
class person
class student extends person
public class test
}
這種操作本身沒有任何意義,其核心的原因在於:類中的屬性都要求使用private封裝,一旦封裝了,子類不知道父
類具有什麼屬性,那麼也就不存在屬性覆蓋的問題了
在進行覆寫操作過程中,子類可以使用super.方法()或者super.屬性明確呼叫父類的方法和屬性
觀察使用super呼叫父類的同名方法
package testoverride;
/** * author:weiwei
* description:使用super呼叫父類的同名方法
* creat:2019/3/28
**/class person
}class student extends person
public static class print
}public class testoverride1
}
觀察使用super呼叫父類屬性
package testoverride;
/** * author:weiwei
* description:使用super呼叫父類屬性
* creat:2019/3/28
**/class person
class student extends person
public static class print
}public class testoverride2
}
super與this的區別:
no區別
this
super1概念
訪問本類中的屬性和方法
由子類訪問父類中的屬性和方法
2查詢範圍
先查詢本類,如果本類沒有就掉用父類
不查詢本類,而直接呼叫父類定義的方法或屬性3特殊
表示當前物件
無為什麼要進行覆寫?
子類覆寫父類的方法是因為父類的方法功能不足才需要覆寫。
注意方法覆寫的時候使用的就是public許可權
詳解Java中的覆寫與過載
1.override 覆寫 重寫 重寫發生在子類繼承父類時,覆寫 重新實現 父類中的方法。重寫方法的引數列表必須完全與被重寫的方法相同,否則不能稱為重寫而是過載。重寫方法的訪問修飾符一定要大於被重寫方法的訪問修飾符 public protected default private 重寫的方法的返回值...
java物件導向 十一 覆寫
在子類和父類的關係中,如果子類中有定義和父類完全相同的方法或屬性的名稱,就稱為覆寫.當子類定義了和父類在方法名稱,返回值型別,引數型別及個數完全相同的方法時,稱為方法的覆寫.先演示沒有覆寫的操作,範例1 class a class b extends a public class demo 執行結果...
Java中過載與覆寫的區別
區別過載 overload 覆寫 override 1概念 方法名稱相同,引數的型別及個數不同 方法名稱,引數型別,返回值型別和個數完全相同2範圍 乙個類繼承關係3限制 沒有許可權要求 被覆寫的方法不能擁有比父類更為嚴格的訪問控制許可權 而且為了設計的良好,在過載時請保持方法返回型別一致。關於覆寫的...