基礎程式設計(Java)· CH10

多型與介面 — 互動講義

本章列入本學期考試範圍。 Java 引擎載入中(首次約 30 秒)…
1

多型分派(點不同物件看跑哪版)

Shape[] 裝 Circle/Square/Triangle,同一行 s.area() 依物件實際型別跑不同版本。

Shape[] shapes(點一個元素 → 模擬 s = 它)

同一個呼叫
s.area()
點上面任一物件
變數 s 的型別都是 Shape,但動態繫結看物件的實際型別決定跑哪個 area()。
2

貼碼試跑

真 Java,瀏覽器內編譯執行。

為線上單檔執行,範例把多個類別/介面放同一檔(教科書是分多個 .java)。瀏覽器無鍵盤,請勿用 Scanner

輸出


  
3

動態繫結:一步步看 s.area() 跑哪版

同一個 Shape 變數 s 換指不同物件,呼叫 area() 時執行期看物件決定版本。

Shape s = new Circle(2); s.area();   s = new Square(3); s.area();

Shape s———▶
heap:Circle 物件
area() = πr²
heap:Square 物件
area() = 邊長²