java復寫
① java中繼承中,子類復寫父類方法,為什麼許可權一定要大於等於父類
一個class叫c1,有個public的方法aa,class c2繼承c1,重寫aa方法但是是private的,class c3繼承c2,沒有重寫aa方法,c3也相當於繼承了c1,那麼c3的方法aa是public的還是private的呢,這個邏輯不就亂掉了嘛,重寫方法就相當於覆蓋,許可權比別人小怎麼蓋得住別人呢
② Java怎麼重新復寫(已經復寫了一次)同一個類里的一個方法,能有這種辦法嗎
同一個類里可以有同名方法,但是它們的參數不能相同,這叫做重載(overload),是JAVA同一個類中多態性的體現。
還有一種是重寫(Overriding):子類中定義某方法與其父類有相同的名稱和參數,這是父類與子類之間的多態性的體現。
還有一種辦法就是使用JAVA的泛型方法。
不知道你的具體要求是什麼?
③ java里為什麼要有介面.反正還要復寫介面里的方法
因為java是單繼承的,用介面就是為了實現多繼承,介面還可以統一格式,而且更符合java面向對象編程思想。
④ java 重寫和復寫一樣嗎
重寫是子類的方法覆蓋父類的方法,要求方法名和參數都相同,同時返回值必須一樣
重載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名,但是參數卻不相同,方法體也不相同,最常見的重載的例子就是類的構造函數,可以參考API幫助文檔看看類的構造方法
⑤ Java中,復寫了toString方法,如何再調用復寫前的toString方法
用super.toString()調用父類的toString方法看看 直接拼接字元串就行了啊。比如
classCCCC{
inti=0;
publicStringtoString(){
returnString.valueOf(i)+":"+super.toString();
}
}
⑥ Java方法覆寫問題
我來解釋下LZ的疑問哈,首先,父類私有的方法,也就是private方法,子類是既不可以重寫,也不可以重載的,就算是跟父類一個同名的方法,那也是在子類中的一個新方法,不會跟父類沖突。
首先我們看書中的例子,父類中的this.fun是調用了自己類的方法,而new Student.fun()是調用了繼承下來的父類的fun()方法,當然列印Per-->void print()只是說明了簡單的繼承
再看LZ的例子,父類的print方法是private的,是私有方法,是不能夠重載和重寫的,lz你在子類中也定義了default的print方法,只是一個新方法,並不是重寫父類的,算不上是復寫,只能算是一個新方法,不跟父類起沖突,也沒有關系
⑦ 在Java中 子類可以復寫父類的方法 那父類中的屬性可以復寫嗎
可以復寫,如果重名的話。不過一般我們使用屬性會用private聲明。這個屬性是只能內部使用的,不可以復寫
⑧ java中要使用多線程的時候為什麼要復寫run方法run方法起了什麼作用
用start啟動一個線程後,如果該線程獲得了調度而運行,那總得讓它干點事吧,run方法主要就是用來定義線程在運行時要乾的事。
⑨ java中子類復寫父類中的一些方法時,自己加的代碼寫在super()上面還是下面
子類復寫父類中的一些方法時,自己加的代碼寫在super()必須寫在下面。注意我說的是必須寫在下面的,不然的話編譯是不能通過的
⑩ Java復寫了父類的方法後,怎麼可以在跳出父類方法的同時,子類中該方法復寫的內容也不執行..具體代碼
public class Test { public void test1(String str) { if (str == null) { System.out.println("null"); System.out.println(str); return; } System.out.println(2); } } public class MainClass extends Test { @Override public void test1(String str) { // TODO Auto-generated method stub try{ super.test1(str); }catch (NullPointerException e) { // TODO: handle exception return; } System.out.println("go on"); } }一樣的道理,用異常也可以,void換boolean是完全可以的,自己想 不明白就用異常來處理