Java是一種面向?qū)ο缶幊陶Z言,提供了許多方便的工具來實(shí)現(xiàn)面向?qū)ο缶幊讨械睦^承和合成。這兩種方法都可以使代碼得到重用,但它們的實(shí)現(xiàn)方式是不同的。
繼承是指在一個類中可以從另一個類中繼承代碼和屬性。可以在一個類中定義一個子類,該子類從父類中繼承了所有代碼和屬性。在Java中,使用關(guān)鍵字“extends”來實(shí)現(xiàn)繼承。下面是一個繼承示例:
class Animal { int age; void eat() { System.out.println("Animal is eating"); } } class Dog extends Animal { void bark() { System.out.println("Dog is barking"); } } Dog d = new Dog(); d.eat(); // Animal is eating d.bark(); // Dog is barking
合成是指在一個類中創(chuàng)建另一個類的實(shí)例,并將其作為自己的一部分。可以把一個類的若干組件合成為另一個類的實(shí)例,而無需使用繼承的方式。在Java中,可以使用關(guān)鍵字“new”來創(chuàng)建一個新的實(shí)例對象。下面是一個合成示例:
class Engine { void start() { System.out.println("Engine is started"); } } class Car { Engine engine = new Engine(); void start() { engine.start(); } } Car car = new Car(); car.start(); // Engine is started
可以看出,合成和繼承都有其自身的優(yōu)點(diǎn)和適用場景。合成允許將多個不同的類組合在一起,形成一個更大的整體,而繼承可以實(shí)現(xiàn)類的層次結(jié)構(gòu),方便代碼重用。在實(shí)際開發(fā)中,應(yīng)該根據(jù)具體需求選擇合適的方法。