[英]Why do many Collection classes in Java extend the abstract class and implement the interface as well?
[英]Do Abstract classes need to implement an entire interface in java 7?
我需要一組不同的類來實現某個接口。 但是,對於接口中定義的某些方法,很多(但不是全部)這些類需要相同的實現。 我想知道是否可以讓抽象類實現該接口,並僅創建與那些類相同的方法?
例如,我有接口A:
public interface A{ public returnType method1(){}; public returnType method2(){}; }
我可以這樣做嗎?
public abstract class AbstractPartialA implements A{
@Override
public returnType method1(){
implementation
}
}
並且從這個Abstract類擴展的類是否實現了實現接口所需的其余方法?
是的,您可以,這就是抽象類的確切目的。
抽象類是否需要在Java 7中實現整個接口?
答案是“否”。 抽象類可以實現整個接口,也可以僅實現接口的某些方法。
如果它實現了整個接口並且仍然聲明為“抽象”,則意味着我們不希望其他人(將要使用我們的課程的人)為我們的課程創建對象
此類的示例是javax.servlet.http中的HttpServlet。 此處的HttpServlet類沒有任何抽象方法,但仍被聲明為“抽象”
很簡單,如果該類未實現接口的任何一種方法,則將其聲明為“抽象”。 現在將由另一個類負責擴展抽象類,以提供該方法的實現,而該方法不是“抽象類”實現的
您可以,當您嘗試從AbstractPartialA
擴展時,Java會要求您:
請記住,一個類被視為實現了由其超類實現的所有接口,而不僅僅是在該類的聲明中的implements
關鍵字之后專門編寫的接口。 這既適用於類的類型(因而適用於其引用的類型),也適用於需要實現的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.