Mik*_*ike 5 c# inheritance abstract-class
我正在创建一系列包含基本属性的Interfaces/Abstract类,我想要计算属性和多重继承.
public abstract class /interface Modifiable
{
public DateTime ModifiedDate {get; set;}
public boo ModifiedToday
{
get { return DateTime.Now.AddDays(-1).CompareTo(ModifiedDate) >= 0; }
}
public bool ModifiedInLastWeek
{
get { return DateTime.Now.AddDays(-7).CompareTo(ModifiedDate) >= 0; }
}
}
public abstract class /interface Deletable
{
public DateTime DeletionDate {get; set;}
public bool Deleted
{
get { return DeletionDate != default(DateTime) }
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个继承自这两个Interfaces/Abstract类的类.
public class Something : Modifiable, Deletable
{
//
}
Run Code Online (Sandbox Code Playgroud)
但是一个类不能从两个抽象类继承.所以我需要使用接口,但是使用接口我不能拥有方法体.然后我必须在多个类中定义相同的确切函数,以使用接口实现这些简单的bool属性.
我也不想从Deletable中获得可修改的继承,因为我可能想要一些可修改但不可删除的东西.这些特定的类不是我的问题,我只是用它们来说明我的问题.
是否存在通过允许函数体模仿抽象类的设计模式,但允许多个继承者如接口?
不可以。C# 没有以这种方式实现多重继承的机制。
对于接口来说,这是可能的,因为当您定义多个接口时,您还需要全部实现它们。
考虑不同的设计,可能使用组合来重用要用于多重继承的类。