abstract class Shape { // 勾畫shape public abstract void draw(); // 擦去 shape public abstract void erase();
public String name; public Shape(String aName) { name = aName; } }
1.b 定義 Shape的兩個子類: Circle, Square,實現Shape中定義的抽象方法
// 圓形子類 class Circle extends Shape { public void draw() { System.out.println("It will draw a circle."); } public void erase() { System.out.println("It will erase a circle."); } // 構造函數 public Circle(String aName) { super(aName); } }
// 方形子類 class Square extends Shape { public void draw() { System.out.println("It will draw a square."); } public void erase() { System.out.println("It will erase a square."); } // 構造函數 public Square(String aName) { super(aName); } }
class Main { public static void main(String[] args) { ShapeFactory sf1 = new SquareFactory(); ShapeFactory sf2 = new CircleFactory(); sf1.anOperation("Shape one"); sf2.anOperation("Shape two"); } }
運行結果如下:
The current shape is: Shape one (created by SquareFactory) It will draw a square. It will erase a square. The current shape is: Shape two (created by CircleFactory) It will draw a circle. It will erase a circle.