簡體   English   中英

擴展抽象類的類

[英]Class which extends abstract class

我有一個問題,我有一個實現接口的抽象類,還有一個擴展了第一個抽象類的類,但是我得到一個錯誤,它說我的第二個類必須從接口繼承方法,我不想要那個,我也也可以將其更改為抽象類,但是我無法在某個第三類中從該類調用構造函數,我該如何解決這個問題? 我在互聯網上搜索了答案但找不到它,我不明白抽象類很好所以我無法解決它。請幫忙(ps 對不起我的英語,這真的很糟糕)

編輯:我有一個任務,要求我的第二個類需要擴展抽象類,我正在實現接口,因為他們還給了我主類,他們在我的第二個類中從構造函數創建對象,然后他們正在使用它對於接口類型,我不知道這是否有意義,代碼很長,但我會給出一些行:這是我的主類 (NationalTeam bulgaria = new NationalTeam("Bulgaria", Formation.F352, "Bulgaria") ; nationalManager.setManagingTeam(bulgaria);) (bulgaria 必須是接口類型),這里也是我的第二類構造函數,它擴展了抽象類:(public NationalTeam(String name,Formation Formation,String country){ super(name,formation) ); this.country=country; })

抽象類:抽象類可能有抽象方法,這意味着方法是沒有實現的方法。

當您擴展抽象類 A 時,類 A 的方法必須由您的子類實現,例如 B,除非您將子類 B 設為 anstract 類。

您需要考慮如何設計系統而不是編譯器如何強迫您。

如果設計說第二個類應該是抽象的,那么就去做,然后最終在你的實現中實現你的抽象方法。

另一方面,如果第二個類是您的實現不是抽象的,則您必須提供實現以使其成為對象

我的第二個類必須從接口繼承方法,我不想要那個

真的嗎? 那你當初為什么要聲明接口呢? 為什么抽象類需要實現接口?

接口應該是更高級別的抽象。 它是客戶端代碼和庫之間的契約。 它在客戶端代碼和庫之間創建了一個接口。 這就像說“我有能力做界面要求我做的事情”。 你說你不想?

因此,有兩種好方法和一種壞方法可以解決此問題:

好的

  1. 不要擴展抽象類。 因為如果你這樣做,它可能沒有意義。

  2. 抽象類不擴展接口。

糟糕(這真的很糟糕

在接口中添加方法並將主體留空或返回一個隨機值。 再說一次,如果你沒有必要,不要這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM