extends 表示擴充套件implements 表示實現類可以擴充套件父類 extends BaseClass類可以實現介面 implements InterfaceA介面可以擴充套件另一個介面 extends InterfaceB
你看到的是最後一種情況
典型的例子是 java.util.Collection 這個介面的聲明裡擴充套件了 java.lang.Iterable 介面
Collection 介面表示一個物件是資料集合容納一定容量的相同物件Iterable 介面表示一個物件是資料序列可以按照一定的順序一個一個地遍歷
很顯然集合應該支援遍歷所以 Collection 介面宣告中增加了對 Iterable 介面的擴充套件之所以使用擴充套件(extends) 而不是實現(implements)是因為 Collection 本身就是介面,沒有能力做任何實現但是它要求它的所有實現類也必須實現 Iterable 中的方法
只不過 Collection 的實現類中已經不需要再增加 implements Iterable 這樣的聲明瞭
至於追蹤實現最後發現是抽象方法可能是實現類並不包含在這份原始碼中實現類由具體的伺服器提供可能是 tomcat 也可能是 jetty這些實現類的物件只有在執行的時候才會動態地建立並傳入到 J2EE 框架中使用
要不啟動一個伺服器下個斷點看看?
extends 表示擴充套件implements 表示實現類可以擴充套件父類 extends BaseClass類可以實現介面 implements InterfaceA介面可以擴充套件另一個介面 extends InterfaceB
你看到的是最後一種情況
典型的例子是 java.util.Collection 這個介面的聲明裡擴充套件了 java.lang.Iterable 介面
Collection 介面表示一個物件是資料集合容納一定容量的相同物件Iterable 介面表示一個物件是資料序列可以按照一定的順序一個一個地遍歷
很顯然集合應該支援遍歷所以 Collection 介面宣告中增加了對 Iterable 介面的擴充套件之所以使用擴充套件(extends) 而不是實現(implements)是因為 Collection 本身就是介面,沒有能力做任何實現但是它要求它的所有實現類也必須實現 Iterable 中的方法
只不過 Collection 的實現類中已經不需要再增加 implements Iterable 這樣的聲明瞭
至於追蹤實現最後發現是抽象方法可能是實現類並不包含在這份原始碼中實現類由具體的伺服器提供可能是 tomcat 也可能是 jetty這些實現類的物件只有在執行的時候才會動態地建立並傳入到 J2EE 框架中使用
要不啟動一個伺服器下個斷點看看?