Можно ли заставить производные классы класса реализовать интерфейс?
Скажем, у меня есть интерфейс IImportantStuff
и классы Base
и DerivedA
, _4 _, _ 5_ и ...
Я хочу заставить DerivedA, DerivedB, DerivedC и все другие классы, которые будут наследовать базовый класс в будущем (классы, которые я могу разработать в будущем), реализовать IImportantStuff.
Отредактировано:
В качестве еще одного вопроса: каждый унаследованный класс (производный от базового класса) работает с определенной сущностью (например, клиент, владелец магазина, персонал), и я хочу заставить производные классы объявлять свою сущность, чтобы программисты в моей команде не создавали класс, унаследованный от База без определения сущности. Я хотел сделать это через Generics и Interfaces, чтобы в базовой форме они могли получить доступ к свойствам и членам Entity.
Например
class Base<T> { public T Entity {get; set;} }
class MidClass : Base {}
class Customer
{
public string CustomerName {get; set;}
}
class Shopkeeper
{
public int ShopkeeperID {get; set;}
}
class Shop1 : Base<ShopKeeper>
{
//1. Force the programmer to implement ShopkeeperID
//2. Be able to access the properties of Shopkeeper
void MyMethod()
{
var skid = this.Entity.ID;
}
}
class Shop2 : Base<Customer>
{
void MyMethod()
{
var skid = this.Entity.CustomerName;
}
}
Я хочу, чтобы Shop1 и Shop2 наследовали базовый класс, а не непосредственно интерфейс, потому что мои со-программисты могут забыть наследовать от Interface в своих классах. Итак, я хочу оказать влияние на MidClass, и их классы, унаследованные от MidClass, должны реализовывать интерфейс.