我有兩個類B,C它們共享atype的公共屬性D。
class B
{
public D a {get;set;}
public E b {get;set;}
}
class C
{
public D a {get;set;}
public F c {get;set;}
}
我可以做一個
abstract class A
{
public D a {get;set;}
}
從中B和C繼承。
class B:A
{
public E b {get;set;}
}
class C:A
{
public F c {get;set;}
}
我也知道我將有一個帶有方法的服務,該方法GetValue回傳型別為 的物件A。
interface Service
{
A GetValue();
}
該類A也可以是一個介面,但該屬性a必須由Band實作雙倍實作C。問題是我應該使用interface還是abstract用于實施A?僅僅因為兩個類具有共同屬性而從抽象類繼承似乎不是一個好習慣,但我不確定。
uj5u.com熱心網友回復:
您可以在抽象類中反映公共屬性a和方法GetValue()。請記住,在 C 中,您的函式簽名不能回傳抽象型別。在您的示例中,我也看不到介面如何為您做任何事情,因為它只是空的。
uj5u.com熱心網友回復:
如果您使用的是 C# > 8.0,那么您可以創建一個具有默認方法實作的介面。這樣你就不必有一個抽象類,但同時你也不需要重新實作共享方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/399040.html
