這是一個典型的有界類型參數聲明,常見於優先隊列、排序算法等需要比較元素大小的數據結構中。
public class MaxPQ> { ... }
| 部分 | 含義 |
|---|---|
Key | 類型參數名(慣例用 T、E、K、V,此處語義化為 Key) |
extends | 在此處表示「實現」或「繼承」,非類繼承專用 |
Comparable | 上界:Key 必須實現 Comparable 接口,即具備 compareTo(Key other) 方法 |
「這個優先隊列只接受能和自己比大小的類型作為鍵。」
Comparable 的類會報錯key1.compareTo(key2) 無需強轉String、Integer、Date、自定義實現類等// 合法:String 實現 Comparable
MaxPQ pq1 = new MaxPQ<>();
// 合法:自定義類實現 Comparable
class Student implements Comparable { ... }
MaxPQ pq2 = new MaxPQ<>();
// 編譯錯誤:Object 未實現 Comparable
若需同時實現多個接口:(用 & 連接,最多一個類)。