java方法的神奇修改(重寫)
java方法的重寫
我們知道方法有過載,但是今天我來說卻與過載大不相同,你沒看錯,它就是方法的重寫。它的定義是:在子類中可以根據需要從父類中繼承的方法進行改造,也稱方法的重置,覆蓋。在執行時,子類的方法將覆蓋父類的方法。
方法重寫的應用:重寫後,當建立子類的物件後,通過子類物件呼叫父類中同名同參的方法時,實際執行的是子類重寫父類的方法。(通俗的講就是,繼承完了後,再對其進行重寫,該方法就不全與父類相同了)
一.方法重寫的規定(我先在這裡說明了需要注意的點,後面會進行實踐舉例)
1.子類中重寫的方法的方法名和形參列表與父類被重寫的方法的方法名和形參列表相同。
2.子類重寫的方法的許可權修飾符要大於等於父類中的許可權修飾符(可以理解為前浪更比後浪強,不強也得一樣叭)
3.子類中不可重寫父類中宣告為private的方法
4.返回值的型別:
若父類被重寫成為void型別的,則子類重寫的方法也必須為void。
若父類被重寫成A類,則子類重寫的方法可以為A類,也可以為A類的子類。
5.父類被重寫的型別為基本資料型別,則子類重寫也必須是同一資料型別
(無自動提升!!!)
二.方法重寫的使用
直接程式碼說話:
首先建立一個父類:
public class hero{
int age;
String name;
boolean ismale;
public hero(){
}
public hero(String name1, String abi){
System.out.println(name1+"的能力是"+abi);
}
public void achievement(){
System.out.println("我外星人幹掉了");
}
}
再建立個子類:
public class superman extends hero {
String wuqi;
public superman(){
}
public void achievement(){
System.out.println("我已經幹掉100個外星人了");
}
public void destesr(String wuqi){
this.wuqi=wuqi;
}
}
最後new物件:
public class ishero {
public static void main(String[] args) {
hero me=new hero();
me.achievement();
superman king=new superman();
king.achievement();
}
}
我們發現最後輸出的結果為:
我外星人幹掉了
我已經幹掉100個外星人了
子類繼承完父類後對其中某些方法進行修改了,那麼該類以及其子類也會被改寫,這就是重寫。(注意:方法)
三.最後的小小說明
1.異常型別:子類重寫的方法丟擲異常型別不大於父類被重寫的方法丟擲的異常型別。
2.由於子類與父類中的同名同參的方法要麼宣告為非static的要麼宣告為static的,故二者必有其一,但是我們需要注意的是當其宣告為static時,就已經不是重寫了。
相關文章
- java之方法的重寫Java
- java 方法重寫概念Java
- Java重寫equals方法時為什麼要重寫hashcode方法Java
- Java 面試題關於方法的重寫Java面試題
- Java中方法重寫與方法過載Java
- java 新建立的類要重寫的方法Java
- 重寫Java的String及其大部分方法Java
- Java 重寫方法與初始化的隱患Java
- 複習java面對物件(方法重寫)Java物件
- 方法重寫
- 修改Java檔案不用重啟Tomcat服務的方法JavaTomcat
- 重寫equals()方法時,需要同時重寫hashCode()方法
- Java中父類方法重寫有哪些需要注意的?Java
- Java中final修飾的方法是否可以被重寫Java
- 二、Java初級--8、繼承和重寫方法Java繼承
- 【iOS】category重寫方法的呼叫iOSGo
- 方法重寫(Override)IDE
- java基礎學習之三:方法的過載和重寫Java
- java -繼承 -重寫Java繼承
- 建議重寫equals方法時也一併重寫hashCode方法
- java為什麼要重寫hashCode和equals方法Java
- JavaBean重寫Object類中的方法JavaBeanObject
- 方法重置和重寫的區別
- 你不知道的Java重寫Java
- Java中的過載和重寫Java
- 【JAVA】重寫和過載Java
- java 重寫知識點Java
- 降低論文重複率的幾種修改方法!
- Java—重寫與過載的區別Java
- java 中為什麼重寫 equals 後需要重寫 hashCodeJava
- Java入門系列之重寫Java
- java~重寫hashcode和equalsJava
- java中過載與重寫的區別Java
- 為什麼重寫 equals() 方法,一定要重寫 hashCode() 呢?| HashMapHashMap
- 重寫JS中的apply,call,bind,new方法JSAPP
- 重寫陣列的方法(改變原陣列)陣列
- Python 10-4——重寫父類的方法Python
- 自定義HttpMessageHandler實現HTTP方法的重寫HTTP