當前位置:首頁 » 編程語言 » java重寫類

java重寫類

發布時間: 2022-11-27 23:55:50

java中重寫和重構二者的定義和區別

我暈,樓上,重構可不是「重載構造函數」的簡寫。軟體重構和重寫壓根不是一個層次上的東西!軟體重構是說程序員為了對 已有程序 在盡量不改變介面的前提下 進行如下處理 而做的 重新編寫代碼的工作1、去除bug2、提高效率3、增加新的功能等等。而方法重寫只是大多數面向對象語言提供的一種機制,目的主要是幫助實現「多態」。許多時候java代碼的重構確實利用了java的方法重寫機制,但是你要理解它們根本不是同一層次上的東西。 重構:站在軟體整體設計思想的高度,改變軟體內部結構達到提高效率,增加功能,去除bug等工作。方法重寫:僅僅是java的一種語言機制,它和繼承,超類可以引用子類等機制一同實現「多態」。

Ⅱ java重寫類implements是重寫裡面所有的方法嗎

補充樓上的...
implements
介面
abstract方法是不可以直接使用的..你必須重寫他.
如例所示,你可以在DBCatEvent類中重寫ActionListener裡面存在的abstract方法,當然你也可以自定義ActionListener中不存在的方法.
extends是繼承,你只能繼承於一個父類,你可以直接使用父類里的方法..當然你也可以重寫他..或者你自定義父類里不存在的方法.

Ⅲ java中重載和重寫的區別

重寫是子類覆蓋父類的方法,而重載是同一個類中方法名稱相同而參數個數或參數類型不同。一個是子類對於父類,而另一個是指在同一個類中

Ⅳ 關於JAVA繼承重寫的問題

你沒有弄明白什麼叫做重寫。你子類中的方法why(int/float)和父類的方法why()是兩個不同的方法,子類中的why(int/float)方法並不是從父類繼承得到的。
Java編譯器判斷兩個方法相同的根據是兩個:方法名和參數列表,並不包括返回值。當這兩點都一樣時,就認為這兩個方法一樣,所以當你把子類中的why(int/float)方法參數去掉,那麼編譯器就認為這個方法是從父類中繼承來的(因為方法名和參數與父類的一樣),應當是同一個方法,但是返回值卻和父類的不一樣,所以會報編譯錯誤。
重載就是說一個類中有多個方法的方法名一樣,但是參數列表不一樣。
重寫就是說將父類的方法體的實現在子類中重新編寫。重寫時,方法原型並不會和父類中的有差異。

Ⅳ java重寫已定義好的類中的方法

java中重寫已定義好的類中的方法,只需要定義一個類繼承該類,然後在子類中寫出一個與該方法的返回值、名字、參數列表全部一致,但是函數內容不同即可完成重寫操作。在java中有重載和覆蓋(即重寫)兩個概念,重載是在同一個類中,方法名相同,參數列表或者參數個數與參數順序不一致即可重載;而覆蓋是在子父類中,子類的方法與父類的方法完全一致,但是方法內容不同叫做覆蓋也叫重寫。

Ⅵ JAVA中子類重寫父類的方法,怎麼寫,什麼要求

1.父類的方法不能降級,同級的話就要覆蓋,例如public方法不能在子類中被聲明為protected或者private(子類重載除外),否則會有

Cannot rece the visibility of the inherited method from Father的編譯錯誤。

2.父類的方法可以任意升級,但升級只有兩種方式,要麼覆蓋,要麼重載,覆蓋就是方法體完全一樣,重載則是參數必須改變,方法名稱不變。


importjava.lang.reflect.Method;

classFather{
inta;
protectedintb=5;
protectedvoidfuncpro(){
//父類的保護方法,子類能夠訪問,但子類自身沒有
System.out.println("fatherfuncpro");
}
publicvoidfuncpub(){
//父類公有方法,子類直接繼承
}
privatevoidfuncpri(){
//父類私有方法,子類不可見
}
}
{

/**
*@paramargs
*/
//父類保護方法的重寫
//publicvoidfuncpro(){
////子類自己可以這樣定義,將會覆蓋父類protected方法
//System.out.println("子類的func方法");
//}

//protectedvoidfuncpro(){
////ok
//}

//publicshortfuncpro(){
////illegal父類的protected和public方法在子類中是可見的,試想一下,如果編譯器認為這個方法體正確,
//那麼子類調用funcpro的時候究竟調用哪個呢?這樣沒有能構成重載
//}

//privatevoidfuncpro(){
////illegal
//}

privatevoidfuncpro(inta){
//這是方法重載,不會報錯
System.out.println("sunfuncpro");
}

//父類公有方法的重寫

//privatevoidfuncpub(){
////illegal:
//}

//protectedvoidfuncpub(){
////illegal
//}

//publicvoidfuncpub(){
////ok
//}

//publicintfuncpub(){
////illegal和父類的返回值不匹配
//}

//publicintfuncpub(inti){
////ok子類構成重載
//return1;
//}

//父類私有方法的重寫

//publicvoidfuncpri(){
////ok
//}

//protectedvoidfuncpri(){
////ok
//}

//privatevoidfuncpri(){
////ok
//}

publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
TestOveridetestOveride=newTestOveride();
Classclass1=testOveride.getClass();
try{
Method[]methods=class1.getMethods();
System.out.println("子類中的所有方法:");//可以看到,並沒有父類的funcpro方法
for(Methodm:methods){
System.out.println(m);
}
System.out.println("子類調用父類的protected方法:");
testOveride.funcpro();
System.out.println("子類調用自己的func方法:");
testOveride.funcpro(1);
System.out.println("子類調用父類的欄位");
System.out.println(testOveride.b);
}catch(Exceptione){
e.printStackTrace();
}

}

}

Ⅶ java的子類如何重寫父類的方法

java中重寫父類的方法只需寫出與父類一模一樣的這個方法即可,包括方法名,參數類型,參數值,返回值。
事例代碼如下:
public class Demo extends FDemo{
public static void main(String[] args) {
a();//運行輸出b
}
static void a(){
System.out.println("b");
}
}
class FDemo{
static void a(){
System.out.println("a");
}
}
java重寫父類方法後,原有的父類裡面的實現全部清空,變為重寫後的內容。

Ⅷ 在Java里一個類中重寫另一個類怎麼弄啊

首先,你這個說法就是不正確的,不能重寫一個類,只能重寫一個類中的某些方法。要用到繼承,用你當前類繼承另一個類,然後在你當前類中定義一個跟你想要重寫的方法同名且參數也相同的方法,然後在方法中寫入自己的邏輯,這叫做方法的重寫。(如有錯誤,請糾正!謝謝!)

熱點內容
android尺子 發布:2023-02-09 11:44:16 瀏覽:732
邁銳寶壓縮機多少錢 發布:2023-02-09 11:44:11 瀏覽:934
五菱的obd介面可以升級什麼配置 發布:2023-02-09 11:24:52 瀏覽:506
英雄聯盟手游安卓系統怎麼轉換蘋果系統 發布:2023-02-09 11:23:51 瀏覽:167
預編譯頭文件c 發布:2023-02-09 11:23:49 瀏覽:124
安卓老款機型密碼忘記如何解釋 發布:2023-02-09 11:14:27 瀏覽:348
ftp錯誤無法訪問伺服器 發布:2023-02-09 11:11:44 瀏覽:724
優酷加密視頻手機破解 發布:2023-02-09 11:04:52 瀏覽:483
電商購物車緩存設計 發布:2023-02-09 11:03:18 瀏覽:9
淘寶免費上傳視頻 發布:2023-02-09 11:03:17 瀏覽:177