① java子類可以繼承父類的構造方法嗎
一,java子類不能繼承父類的構造方法(可以調用,但不是繼承):
1、構造方法的定義是與類的名稱相同:如果子類能夠繼承父類的構造方法,那麼在子類的構造方法中就有不同於子類名稱的構造法;
2、這與構造方法的定義不符,因此子類是不能繼承父類的構造方法的;
3、以上參考資料來源:http://bbs.csdn.net/topics/360118234
二,子類繼承父類時,需要注意以下三點:
1、在子類繼承父類的時候,子類必須調用父類的構造函數;
2、在父類有默認構造函數,子類實例化時自動調用,在父類沒有默認構造函數,即無形參構造函數,子類構造函數必須通過super調用父類的構造函數;
3、在java的繼承當中子類是不可以繼承父類的構造函數,只能調用父類的構造函數。
② java中implements是什麼意思在什麼時候使用
implements實現的意思。在Java中是實現介面時使用implements。
extends是繼承父類,只要那個類不是聲明為final或者那個類定義為abstract的就能繼承
JAVA中不支持多重繼承,但是可以用介面來實現,這樣就要用到implements,繼承只能繼承一個類,
但implements可以實現多個介面,用逗號分開就行了比如:
classAextendsBimplementsC,D,E
介面實現的注意點:
a.實現一個介面就是要實現該介面的所有的方法(抽象類除外)。
b.介面中的方法都是抽象的。
c.多個無關的類可以實現同一個介面,一個類可以實現多個無關的介面。
與Extends的不同
extends,可以實現父類,也可以調用父類初始化this.parent()。而且會覆蓋父類定義的變數或者函數。這樣的好處是:架構師定義好介面,讓工程師實現就可以了。整個項目開發效率和開發成本大大降低。implements,實現父類,子類不可以覆蓋父類的方法或者變數。即使子類定義與父類相同的變數或者函數,也會被父類取代掉。
這兩種實現的具體使用,是要看項目的實際情況,需要實現,不可以修改implements,只定義介面需要具體實現,或者可以被修改擴展性好,用extends。
③ java子類如何繼承父類怎麼寫啊
通過extends進行繼承。
語法:<修飾符>class<子類名>extends<父類名>{.....}
舉例:
publicclassParent{//定義父類
}
publicclassSonextendsParent{//通過extends,son類繼承了父類Parent
}
補充:
(1)繼承就是在現有類的基礎上構建親的類。
(2)當一個類繼承一個現有類後,可以對被繼承類中的屬性和方法進行重用。
(3)在Java中,一個類只能有一個父類,不支持多繼承。
④ 關於java中子類繼承父類的構造方法
java繼承中對構造函數是不繼承的,只是調用(隱式或顯式)。
舉例說明:
public class FatherClass {
public FatherClass() {
System.out.println(100);
}
public FatherClass(int age) {
System.out.println(age);
}
}
public class SonClass extends FatherClass{
public SonClass() {
}
public SonClass(int c) {
System.out.println(1234);
}
public static void main(String[] args) {
SonClass s = new SonClass(66);
}
}
編譯後執行結果如下:
分析:SonClass s = new SonClass(66);執行這句時,調用
public SonClass(int c) {
System.out.println(1234);//系統會自動先調用父類的無參構造函數(super())
}
在這個構造函數中,等價於
public SonClass(int c) {
super();//必須是第1行,否則不能編譯
System.out.println(1234);
}
所以結果是 100 1234
3.如果子類構造函數是這樣寫的
public SonClass(int c) {
super(22);//必須是第1行,否則不能編譯
//顯式調用了super後,系統就不再調用無參的super()了;
System.out.println(1234);
}
執行結果是 22
1234
總結1:構造函數不能繼承,只是調用而已。
如果父類沒有無參構造函數
創建子類時,不能編譯,除非在構造函數代碼體中第一行,必須是第一行顯式調用父類有參構造函數
如下:
SonClass (){
super(777);//顯示調用父類有參構造函數
System.out.println(66);
}
如果不顯示調用父類有參構造函數,系統會默認調用父類無參構造函數super();
但是父類中沒有無參構造函數,那它不是不能調用了。所以編譯就無法通過了。
總結2:創建有參構造函數後,系統就不再有默認無參構造函數。
如果沒有任何構造函數,系統會默認有一個無參構造函數。
⑤ JAVA中,子類將繼承父類的所有屬性和方法么~為什麼
是的,子類將繼承父類的非私有的屬性和方法。
在JAVA中,子類繼承父類的所有方法和屬性(構造方法要用關鍵super([參數])調用);繼承是JAVA中一個重要的特色,便於程序的編寫,提高代碼的重用性。
1、如果給子類i提供get和set通過get調用的自然是子類的。
2、如果給父類和子類分別提供get和set,調的仍然是子類的,因為方法被重寫。
(5)java繼承父類方法擴展閱讀
在繼承中用到super調用父類的構造
privateStringname;
privateStringsex;
publicxinxin1(Stringname,Stringsex)
{
this.name=name;
this.sex=sex;
}
publicvoidhello(){
System.out.println(「嗨!我是」+name+」我是」+sex+」孩」);
}