導航:首頁 > 編程語言 > java組合和繼承

java組合和繼承

發布時間:2023-01-05 10:58:23

java重用和繼承的區別

繼承是重用的一種方式。重用最常見的兩種方式是組合和繼承。
組合通常使用在需要既有類的特性,而不是它的介面的時候。這個時候在新類中使用既有類來幫助你實現新的功能,新類的使用者看到的是新類的介面而不是既有類的介面,而且你還可以使用private來對重用的類進行隱藏。如在新類中定義List<String> list =new ArrayList<>();
繼承則通常是在你需要既有類的介面,但是需要對這些進口的實現定義特殊的版本(即重寫父類方法)。

❷ java 為什麼說多用組合,少用繼承

java組合我沒聽收過,但是繼承通常都會和實現放在一起說:
在java中,通常一個類只能繼承一個類,但一個類卻可以實現多個介面,所以採用實現的方式寫代碼會更加靈活

❸ JAVA中什麼是繼承

繼承在本職上是特殊一般的關系,即常說的is-a關系。子類繼承父類,表明子類是一種特殊的父類,並且具有父類所不具有的 一些屬性或方法。

1.Java繼承的語法格式:

Java繼承的關鍵字是:extends

public class 子類名 extends 父類名{...}

如: public class UNStudent extends Student {...} 註:1.子類又稱超類,拓展類 ;父類又稱基類。

2.Java中類的繼承只能是單繼承(單根繼承),即一個類只能繼承一個父類,但是一個類可以由多個類來繼承它。

3.Java會給每一個沒有設置父類的類,自動添加一個父類就是Object 。

(3)java組合和繼承擴展閱讀:

一、子類繼承父類的結果

1.子類繼承父類後,繼承到了父類所有的屬性和方法。註:是所有。

2.子類可調用的方法也要看情況而定:

子類和父類在同一個包下時 「子類和子類的對象」可以調用父類的默認的,受保護的,公有的屬性以及方法。

子類和父類在不同的包下時,在子類中可以調用受保護的,公有的屬性以及方法,而子類的對象可以調用受保護的,公有的屬性以及方法。

二、方法的重寫

1.當子類和父類都有某種方法,而子類的方法更加要求細致,或者實現功能不同,就需要方法的重寫。

2.重寫條件

①必須要存在繼承關系;只有繼承之間的關系才能有方法的重寫

②方法的返回值類型,方法名,參數個數,參數類型,參數順序,必須要完全一致;

如:父類中方法 public void play (int n ; String s){方法體1...}

重寫後的子類方法public void play(int n ; String s){方法體2...}

3.子類重寫方法時的訪問修飾符可以大於或者等於父類方法的訪問修飾符。

4.重寫後的方法會被優先調用。

三、自動轉型

自動轉型的實現要求有繼承關系

格式如下:父類名 對象名 = new 子類構造方法;

如:Student stu = new UNStudent;

而強制轉型格式如下:子類名 對象名 = (子類名)父類對象名

如:UNStudent un = (Student)stu;

自動轉型可以拓寬方法的作用訪問域

在使用自動轉型後,子類自己定義的方法是不能在自動轉型後執行;

原因是因為Java的編譯機制,它會優先判斷父類中是否存在該方法,如果存在則通過編譯,如果不存在則報錯。

第二種自動轉型:轉型後只需要不同類的不同對象調用想吐的方法,很方便!

/**訪問修飾符 返回值數據類型 方法名(父類類型 參數名,...){

調用方法。

}

父類名 對象名 = new 子類名;

子類名 對象名 = new 子類名;

方法名(對象名);

*/

比如拿到駕駛證為A2的人,可以駕駛重型貨車,當然也可以駕駛大型貨車,中型貨車,小型貨車,小客車,小轎車,摩托車... 可以選擇第二種自動轉型的方法,便於調用同一個方法。

自動轉型好處:1.減少冗餘代碼;2.在方法設置參數時,擴大訪問范圍。

四、多態

多態是由方法重載,繼承,方法重寫,自動轉型等技術的組合。

五、為什麼需要繼承?

1.提高代碼的重用性。

2.提高程序的擴展性。

JAVA繼承總結

❹ Java編程:組合,繼承和代理的區別

組合的話,是在類中new一個對象,然後就只能調用這個對象的方法了,是死的

而你用代理的話,代理不僅要new那個對象,還要把你想調用這個對象的方法也寫出來,方法實現是通過這個new的對象來實現的,當然你也可以在方法中添加你自己想實現的功能,這樣做又有了繼承中重寫的感覺,所以說代理是繼承和組合的中庸之道,lz可以看看thinking in java7.3章 7.4章 還有網頁鏈接這篇博客,寫的很詳細

❺ Java中類的組合和繼承 請詳細敘述這兩種方法

組合類意思是
public class A {

}

public class B{
private A a; //拿A做有元變數
}

繼承是指:

public class A {
public void ddd(){

}
}

public class B extends A {
//它就能通過super.ddd()來拿父類A的方法
}

❻ java中繼承的好處是什麼,在組合和繼承中該如何取捨

1,繼承提高了代碼的重復利用性;

2,繼承是面向對象的,一類事物可以獨立存在,解藕了類與類之間的斗聯系。
3,繼承更利於程序的設計。
5,在組合中,一定要把同一類事物放在一起,和現實生活中一樣,每一類事物都是有自己的共性和自己的特性,按毛主席的矛盾論說是:矛盾的普遍性與特殊性,普遍性就是繼承來的。
6,在寫代碼之前,分析和設計是關鍵的一步,這一步解決的就是哪些類是同類的,哪些東西是公共的。

❼ java 什麼是繼承什麼是異常簡述Java的異常處理機制。

面向對象編程 (OOP) 語言的一個主要功能就是「繼承」。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴展。

通過繼承創建的新類稱為「子類」或「派生類」。

被繼承的類稱為「基類」、「父類」或「超類」。

繼承的過程,就是從一般到特殊的過程。

要實現繼承,可以通過「繼承」(Inheritance)和「組合」(Composition)來實現。

在某些 OOP 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。

繼承概念的實現方式有三類:實現繼承、介面繼承和可視繼承。

�0�1 實現繼承是指使用基類的屬性和方法而無需額外編碼的能力;

�0�1 介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;

�0�1 可視繼承是指子窗體(類)使用基窗體(類)的外觀和實現代碼的能力。

在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關系應該是「屬於」關系。例如,Employee 是一個人,Manager 也是一個人,因此這兩個類都可以繼承 Person 類。但是 Leg 類卻不能繼承 Person 類,因為腿並不是一個人。

抽象類僅定義將由子類創建的一般屬性和方法,創建抽象類時,請使用關鍵字 Interface 而不是 Class。

OO開發範式大致為:劃分對象→抽象類→將類組織成為層次化結構(繼承和合成) →用類與實例進行設計和實現幾個階段。

❽ JAVA組合和繼承的區別

你定義了一個A類,所以你這樣寫:private A a;只是定義了一個關於A類的一個變數a,但是它是空的,所以你下面的a.method();肯定會報空指針異常(NullPointException),想可以用的話,你必須創建個對象,像你上面,就應該用A a = new A();
具體代碼:
class A{
int year=2008;
public void method(){
System.out.println("a.method");
}
}
public class B{
private A a;
public static void main(String args[]){
B y=new B();
y.method1();
}
public void method1(){
a = new A();//注意這里
System.out.println("b.method");
a.method();
}
}
列印結果為:
b.method
a.method

❾ java中的繼承關系

A答案本身就是有錯的,interface是定義介面,下邊就不能用extends,而應該用implements
B答案的作用是:son這個類繼承了Father這個類,就體現了繼承關系
C答案是先定義了一個抽象類:Colorable,下邊Shape這個類繼承了Colorable這個類。抽象類是可以被繼承的。也體現了繼承關系
D答案只是把Species的一個引用作為了Animal類的一個屬性。沒有體現繼承。而且跟繼承一點關系也沒有
E答案是Employee實現了Person介面,並會實現介面里的所有抽象方法。所以也是體現了繼承的

❿ java 中的繼承的 優點和缺點 主要是缺點

java 中的繼承的 優點和缺點如下:
優點:1.可以使用父類的所有非私有方法;而且單繼承可由介面來彌補。
2.可以繼承父類中定義的成員方法以及成員變數,使得子類可以減少代碼的書寫。還可以重寫父類的方法以增加子類的功能。
缺點:1.耦合性太大
2.就是破壞了類的封裝性,其實繼承一般多用於抽象方法的繼承和介面的實現

閱讀全文

與java組合和繼承相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:960
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:563
php工程部署 瀏覽:831
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:802
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163