java的繼承與組合的區別
繼承和組合的概念
在新類裡簡單地建立原有類的物件。我們把這種方法叫作“組合”,因為新類由現有類的物件合併而成。我們只是簡單地重複利用程式碼的功能,而不是採用它的形式。
第二種方法是建立一個新類,將其作為現有類的一個“型別”。我們可以原樣採取現有類的形式,並在其中加入新程式碼,同時不會對現有的類產生影響。這種魔術般的行為叫作“繼承”(Inheritance),涉及的大多數工作都是由編譯器完成的。對於面向物件的程式設計,“繼承”是最重要的基礎概念之一。對於組合和繼承這兩種方法,大多數語法和行為都是類似的(因為它們都要根據現有的型別生成新型別)。
使用場合:
組合:各部件之間沒什麼關係,只需要組合即可。like組裝電腦,需要new CPU(),new RAM(),new Disk()……
演示程式碼如下:
public class Computer {
public Computer() {
CPU cpu=new CPU();
RAM ram=new RAM();
Disk disk=new Disk();
}
}
class CPU{ }
class RAM{ }
class Disk{ }
繼承:子類需要具有父類的.功能,各子類之間有所差異。like Shape類作為基類,子類有Rectangle,CirCle,Triangle……
演示程式碼如下:
class Shape {
public void draw() {
tln("draw a shape");
}
public void erase() {
tln("erase");
}
}
class Square extends Shape {
@Override
public void draw() {
tln("draw a Square");
}
public static void main(String[] args) {
Square s = new Square();
();
e();
}
}
一、相比於組合,繼承有以下優點:
1、在繼承中,子類自動繼承父類的非私有成員(default型別視是否同包而定),在需要時,可選擇直接使用或重寫。
2、在繼承中,建立子類物件時,無需建立父類物件,因為系統會自動完成;而在組合中,建立組合類的物件時,通常需要建立其所使用的所有類的物件。
二、組合的優點:
1、在組合中,組合類與呼叫類之間低耦合;而在繼承中子類與父類高耦合。
2、可動態組合。
總結:
雖然繼承是OOP的一大特性,但很多時候並不推薦使用,因為它常常容易使結構複雜化,容易出錯。因此,除非我們確信使用繼承會使程式效率最高,否則,不考慮使用它。
-
如何使用java
Java是一種可以撰寫跨平臺應用程式的面向物件的`程式設計語言。以下是小編為大家搜尋整理的如何使用java,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!...
-
2017年3月計算機二級Java基礎知識習題
學習是把知識能力思維方法等轉化為你的私有產權的重要手段,是“公有轉私”的重要途徑。以下是本站小編彙總的2017年3月計算機二級Java基礎知識習題,歡迎學習!1、結構化程式設計主要強調的是______。A、程式的規模B、程式的易讀性C、程式的執行效率D、程式的可移...
-
java中String和StringBuffer的區別
java中String和StringBuffer的區別String這個類是Java中使用得最頻繁的類之一,以下就是小編精心推薦java中String和StringBuffer的區別,希望對大家有幫助!看到這個講解的不錯,所以轉一下在java中有3個類來負責字元的操作。acter是進行單個字元操作的,ng對一串字元...
-
講述java讀取properties檔案的方法
講述java讀取properties檔案的方法1.不在專案中讀取:Propertiesproperties=newProperties();BufferedReaderread=newBufferedReader(newInputStreamReader(newFileInputStream("檔案的.路徑"),"utf-8"));(read);propertiesroperty("那個檔案的key")2.在專案中讀...