簡體   English   中英

實現接口的類只有沒有其他方法可以嗎?

[英]Are Classes that implement an interface only with no other methods ok?

這個場景是好的還是我誤解了一路上的東西?

我有一個帶有一些受保護變量和一些訪問器方法的超類。 然后我有3個繼承自超類的子類,每個子類都有新的和不同的變量以及相關的訪問器(顯然到目前為止這是可以的)。 然后我有一個只包含一個方法的接口,並且沒有變量由所有類實現,以處理它們的變量並返回一個答案。

我正在使用接口而不僅僅是超類中的虛方法,因為我需要從程序中的其他不相關的類調用此方法來返回不同的處理數據。

對不起,如果這是一個愚蠢的問題,我對C#很新,並且仍然需要學習很多東西,需要在我繼續學習之前確認我的理解。 我不確定這是否是最好的方法,因為除了訪問器和接口的方法之外,這里的所有類都沒有其他方法。 有沒有更好的方法我應該這樣做,因為沒有方法的類(除了接口和訪問器)似乎有點錯誤?

簡短的回答:你走在正確的軌道上。 讓超類繼承接口,然后在子類中為它提供實現。

abstract class Item : GameObject, ISellable
{ 
}

class GenericLoot : Item {
    public int BasePrice { get; }
}

class Slave : Person, ISellable {
    public int BasePrice { get; }
}

......有點黑暗,但你明白了。

答案很長:通過在問題的上下文中對對象進行深思熟慮的抽象來組織您的類。 定義一個只有一個具體子類的抽象類或一個沒有body的子類是可以的。 只要你忠於所涉及的物體的本質。

abstract class Person {}

abstract class PlayerCharacter : Person {}

class Batman : PlayerCharacter {}

暫無
暫無

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

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