public abstract class Vehicle{ private int wheels; private String engineType; private double weight; Vehicle(int wheels, String engineType, double weight){ setWheels(wheels); setEngineType(engineType); setWeight(weight); } public abstract void ignite(); //這是抽象方法 public int getWheels(){ return this.wheels; } public String getEngineType(){ return this.engineType; } public double getWeight(){ return this.weight; } public void setWheels(int wheels){ this.wheels = wheels; } public void setEngineType(String engineType){ this.engineType = engineType; } public void setWeight(double weight){ this.weight = weight; } }
利用繼承,才能使用抽象類別:
public class Sedan extends Vehicle{ private char audioClass; Sedan(int wheels, String engineType, double weight, char audio){ super(wheels,engineType,weight); this.audioClass = audio; } //實作抽象方法 public void ignite(){ System.out.println("Engine start!"); } }
實作時,不可以實例化抽象類別:
public class Demo { public static void main(String[] args){ //錯誤的範例: //Vehicle vo = new Vehicle(4, "Gas" , 1234.32); //正確的範例: Sedan bm = new Sedan(4, "Diesel" , 2231.21 , 'A'); bm.ignite(); } }