Java是一門面向對象的編程語言,抽象類是其中一個重要的概念。抽象類不能被實例化,只能被繼承,應用于具有相似特征的類的抽象和封裝,可以有效地提高代碼的可復用性和可維護性。
在實際應用中,汽車和飛機天然具備一些共性特征,比如它們都是交通工具,都需要具備移動的能力。因此,把汽車和飛機定義為抽象類可以更加直觀地反映出現實中的事物。
public abstract class Vehicle { private String name; private String color; private int width; private int height; public abstract void move(); public void setName(String name) { this.name = name; } public String getName() { return this.name; } public void setColor(String color) { this.color = color; } public String getColor() { return this.color; } public void setWidth(int width) { this.width = width; } public int getWidth() { return this.width; } public void setHeight(int height) { this.height = height; } public int getHeight() { return this.height; } }
以上是簡化版的抽象類Vehicle的代碼,其中包含了汽車和飛機的共性屬性和方法,如名字、顏色、尺寸等屬性。因為move方法的具體實現在不同的子類中可能不同,所以在Vehicle中定義該方法為抽象方法。
在實際的應用中,具體的汽車和飛機類只需要繼承Vehicle類并實現move方法即可,無需再重復定義基礎屬性和方法。這有助于減少代碼的冗余和提高代碼的可讀性。
public class Car extends Vehicle { @Override public void move() { System.out.println("我是一輛車,我可以行駛在公路上"); } } public class Plane extends Vehicle { @Override public void move() { System.out.println("我是一架飛機,我可以在天空中飛翔"); } }
以上是分別繼承Vehicle類的Car和Plane類的代碼,具體實現了move方法。Car類實現了在公路上行駛的方法,而Plane類實現了在天空中飛行的方法。這也說明了抽象類的作用,即為具體類提供了一個通用的模板,并強制要求具體類實現抽象類中的未實現方法。