Java是一種面向對象的編程語言,面向對象的編程思想中很重要的一部分便是繼承和組合。在Java中,我們可以通過繼承和組合來提高代碼的可復用性和可維護性。
繼承
繼承是面向對象編程中的一種重要概念,它所構成的類稱為子類,被繼承的類稱為父類。子類可以繼承父類的屬性和方法,并且可以添加自己的屬性和方法。在Java中,我們可以通過extends
關鍵字來實現繼承。
public class Animal { private String name; public void sound() { System.out.println("動物發出聲音"); } } public class Cat extends Animal { public void sound() { System.out.println("貓發出“喵喵”的聲音"); } }
在上面這個例子中,Cat類繼承了Animal類,并且重載了sound()方法。當我們創建一個Cat對象并調用sound()方法時,輸出的內容是“貓發出“喵喵”的聲音”,而不是Animal類中定義的“動物發出聲音”。
組合
組合是將一種類的對象作為另一種類的實例變量的過程,它允許我們將一個或多個對象合并成一個更復雜的對象。在Java中,組合可以通過創建類的實例變量來實現。
public class Engine { private String type; public Engine(String type) { this.type = type; } public void start() { System.out.println("啟動" + type + "引擎"); } } public class Car { private String name; private Engine engine; public Car(String name, Engine engine) { this.name = name; this.engine = engine; } public void start() { System.out.println(name + "車開始啟動"); engine.start(); } }
在這個例子中,我們創建了一個Engine類表示車的引擎,然后將它作為一個Car類的實例變量。當我們創建一個Car對象并調用start()方法時,輸出的內容是“某某車開始啟動,啟動某某引擎”。
通過繼承和組合,在Java中我們可以輕松地實現面向對象編程的概念。繼承可以減少代碼冗余,組合則可以讓我們更加靈活地構造出更為復雜的對象。