導航:首頁 > 編程語言 > java繼承父類子類

java繼承父類子類

發布時間:2024-11-12 13:20:28

㈠ 關於java 的繼承問題,子類會繼承父類的哪些東西

和C++類似,可以繼承基類的公共屬性和方法。

在Java繼承里,父類的屬性還有方法在聲明時,如果是public關鍵字即公共屬性,則在子類繼承時,這些屬性和方法都會被子類繼承。受保護的也可以繼承

但是私有的類屬性成員和方法則無法繼承。
.子類繼承父類的成員變數
當子類繼承了某個類之後,便可以使用父類中的成員變數,但是並不是完全繼承父類的所有成員變數。具體的原則如下:
1)能夠繼承父類的public和protected成員變數;不能夠繼承父類的private成員變數;
2)對於父類的包訪問許可權成員變數,如果子類和父類在同一個包下,則子類能夠繼承;否則,子類不能夠繼承;
3)對於子類可以繼承的父類成員變數,如果在子類中出現了同名稱的成員變數,則會發生隱藏現象,即子類的成員變數會屏蔽掉父類的同名成員變數。如果要在子類中訪問父類中同名成員變數,需要使用super關鍵字來進行引用。
2.子類繼承父類的方法
同樣地,子類也並不是完全繼承父類的所有方法。
1)能夠繼承父類的public和protected成員方法;不能夠繼承父類的private成員方法;
2)對於父類的包訪問許可權成員方法,如果子類和父類在同一個包下,則子類能夠繼承;否則,子類不能夠繼承;
3)對於子類可以繼承的父類成員方法,如果在子類中出現了同名稱的成員方法,則稱為覆蓋,即子類的成員方法會覆蓋掉父類的同名成員方法。如果要在子類中訪問父類中同名成員方法,需要使用super關鍵字來進行引用。

㈡ Java 子類繼承父類,子類重寫父類方法,這種情況下父類可以獲取到子類的數據嗎

在父類中能獲取子類的屬性嗎?一般情況下是不行的,因為孩子尚未出世哪裡來的屬性。但有時需要在父類處理該類(包含子類)的所有屬性,該怎麼做呢,有種方法能解決——在父類中將子類的實例引用進來。假設BaseClass是基類,有個getAll方法用以獲取該類的所有屬性。SubClass繼承子BaseClass,SSClass繼承自SubClass,SSClass的實例調用getAll方法時獲取SSClass及其父類的所有屬性。具體做法如下:
import java.lang.reflect.Field;
public class BaseClass {
private String a;
private int b;
// public BaseClass() {
// bc = setBC();
// }
private final BaseClass bc = setBC();
private BaseClass setBC() {
return this;
}
public void getAll() {
Class clazz = this.bc.getClass();
do {
Field[] fields = clazz.getDeclaredFields();
for (Field f : fields) {
System.out.println(f.getName());
}
clazz = clazz.getSuperclass();
} while (clazz != Object.class);
}
}
這里BaseClass bc就是子類的引用,構造子類SubClass或SSClass實例時,調用setBC方法將子類的引用獲得。setBC中return this這里的this是子類的實例,不是父類的。setBC也可以在父類構造函數中調用,效果是一樣的,如上面代碼的注釋塊。
子類就不用關心任何事了,不管它是否有自己的構造方法:
public class SubClass extends BaseClass {
@ShareObject
private boolean c;
}
public class SSClass extends SubClass {
private String ss;
public SSClass(int i) {
ss = "";
}
}
測試:
@Test public void get() {
SSClass sc = new SSClass(1);
sc.getAll();
}
輸出內容:
ss
c
a
b
bc

㈢ Java 子類一旦繼承父類後,子類的所有對象也都成為父類的對象了

子類的對象實例都可以用父類的變數去引用。具體來說,假設Son類繼承了Father類。則可以有:

FatherobjRef=newSon(...);
SonsonRef=(Son)objRef;

我們用new關鍵字建造了一個新的Son類對象實例,然後用一個Father類的引用去指向它;這時我們透過objRef這個引用,看到的就好像是一個Father類對象,只能使用Father類有的方法和屬性。當然, 因為objRef指向的其實是一個Son類實例,因此可以藉助強制類型轉換將一個Son類的引用去指向它,然後就可以使用Son類獨有的方法和屬性了。

㈣ Java中子類繼承父類到底是不是相當於直接復制父類的代碼,請各位高人務必慎重回答,免得小弟誤解

老爹將畢生所學的技能傳授於兒子,兒子在「繼承」到了,便可以使用了。兒子所使用的技能是他自己從他老子那裡學來的,不是他老子的。有時候,老爹覺得有些技能「不好」或者是兒子目前所不需要的,那麼不打算把這些技能傳授於兒子(private)。因此,兒子是不會知道如何使用這些技能的。不過,兒子有時候也會覺得老子某些技能不好用,然後加以改進(覆蓋)。當然,兒子沒准也會自創一些技能,這些技能是他老子都不會的。

㈤ 關於java繼承的描述錯誤的是

關於Java繼承的描述中可能存在的錯誤信息包括:



拓展知識:

為了更好地理解這些概念,我們可以使用Java中的示例代碼來說明。例如,假設我們有一個父類Animal和一個子類Dog,Dog繼承了Animal的所有公有和受保護方法,並可以選擇性地覆蓋它們。這樣,我們就可以創建Dog對象並使用它們的方法,同時保留Animal類的所有公共和受保護成員。


以下是一個示例代碼:


class Animal { public void eat() { System.out.println("Animal is eating"); } } class Dog extends Animal { @Override public void eat() { System.out.println("Dog is eating"); super.eat(); // 調用父類的eat方法 } }


在這個例子中,Dog類繼承了Animal類的eat方法並提供了自己的實現,但還調用了父類的eat方法以保留Animal類的功能。這些都是Java繼承的基本原理和特性。


總的來說,Java繼承提供了一種強大的機制,使得我們可以將代碼組織成層次結構,並使代碼更加清晰和可維護。

㈥ 在java中子類若要繼承父類,需要使用的關鍵字是什麼

關鍵字是extends,
語法結構:[修飾符] class <子類類名> <父類類名>{
·····//類體定義
}
super 是用來指明調用的內是父類方法或指明操作的容是父類的屬性,而不是被子類覆蓋的成員方法或被子類隱藏的屬性。
this代表的是當前對象自身。
介面的定義的關鍵字是interface。實現的關鍵字是implements

㈦ JAVA中,子類將繼承父類的所有屬性和方法么~為什麼

是的來,子類將繼承父類的非私有的自屬性和方法。

在JAVA中,子類繼承父類的所有方法和屬性(構造方法要用關鍵super([參數])調用);繼承是JAVA中一個重要的特色,便於程序的編寫,提高代碼的重用性。

1、如果給子類i提供get和set 通過get調用的自然是子類的。

2、如果給父類和子類分別提供get和set,調的仍然是子類的,因為方法被重寫。

(7)java繼承父類子類擴展閱讀

在繼承中用到super調用父類的構造

private String name;

private String sex;

public xinxin1(String name,String sex)

{

this.name=name;

this.sex=sex;

}

public void hello(){

System.out.println(「嗨!我是」+name+」我是」+sex+」孩」);

}

閱讀全文

與java繼承父類子類相關的資料

熱點內容
excel如何統計同一種顏色數據 瀏覽:649
王者榮耀數據占內存多少 瀏覽:581
copy文件名命令的功能是 瀏覽:341
電腦apk文件傳輸到手機 瀏覽:186
金蝶如何備份數據 瀏覽:483
遠程開機密碼 瀏覽:923
榮耀隱私空間在哪個文件 瀏覽:241
hgc是什麼格式文件 瀏覽:653
postgres導入sql文件 瀏覽:989
會編程應該朝什麼方向發展 瀏覽:409
如何文檔轉pdf格式文件 瀏覽:723
織夢安裝資料庫埠 瀏覽:286
怎麼降低app佔用率 瀏覽:294
如何用另一個手機的網路上網 瀏覽:305
財信證券app怎麼查可轉債 瀏覽:68
ipad默認鎖屏密碼 瀏覽:258
刪除文件可以按哪個鍵 瀏覽:156
js使用剪貼板 瀏覽:880
表格如何求和一列數據 瀏覽:921
電子計算機編程哪些學校強項 瀏覽:344

友情鏈接