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實驗報告模板
1.掌握JavaApplet的程序結構和開發過程。2.學會編寫Applet對應的HTML文件,掌握從HTML文件向Applet傳遞參數的方法。3.掌握文本框對象的使用方法。4.掌握按鈕類對象的使用方法。5.掌握佈局管理器的用法。6.理解ActionEvent事件的`含義。7.掌握事件源、監視器、處理事...
-
XP如何配置JAVA環境變量
Java是在1995年由Sun公司推出的一種極富創造力的面向對象的程序設計語言,它由Java之父詹姆斯戈士林博士設計。下面,小編為大家整理關於XP如何配置JAVA環境變量,歡迎大家參考閲讀。XP如何配置JAVA環境變量XP配置方法:1.右擊“我的'電腦”,點擊“屬性”:2.選擇“高級...
-
Java程序設計示例教程
本文以實例形式詳細講述了Java的反射機制,是Java程序設計中重要的技巧。分享給大家供大家參考。具體分析如下:首先,Reflection是Java程序開發語言的特徵之一,它允許運行中的Java程序對自身進行檢查,或者説"自審",並能直接操作程序的內部屬性。例如,使用它能獲得Java類...
-
在Java裏處理文件的技巧
導讀:看到太多的凌亂的,不安全的處理文件的代碼了。可以説每個項目都會有人喜歡寫自己的一些FileUitl。下面是小編為大家整理的在Java裏處理文件的技巧,歡迎參考~實用的工具類,Path,Paths,Files,FileSystem有一些很靈活的處理方法://得到一個Path對象Pathpath=("/test/...