Хорошо, так что я возился с несколькими вещами, в частности, с интерфейсами.
Скажем, у меня есть класс 'Cat' с его базой, поскольку 'Animal' Animal имеет метод, подобный этому
public virtual void Walk()
{
// Do walking stuff
}
Так что Cat переопределит это с помощью:
public override void Walk()
{
// Do cat specific walking stuff
}
Простое право?
Вот мой вопрос, есть ли способ заставить cat переопределить базовую Walk ()?метод?Так что, если бы другой разработчик добавил класс Dog, он был бы вынужден реализовать свой собственный метод Walk (даже если он был просто base.Walk ())?
Так что интерфейсы вроде бы решают это, вот что япробовал
Cat: Animal: Interface Animal должен реализовывать метод Walk, но Cat не
Cat: Animal, Interface Cat должен реализовывать метод Walk, но если разработчик этого не делаетЕсли вы не добавите или забудете «Интерфейс», тогда он «сломает» его.
Может ли кто-нибудь дать мне указатель, как это сделать?
Спасибо.
Edit 1
Вот то, к чему я стремлюсь, надеюсь, это прояснит ситуацию.
public class Animal
{
public Animal()
{
Console.WriteLine("Animal");
}
public virtual void Walk()
{
}
}
public class Cat : Animal
{
public Cat() : base()
{
Console.WriteLine("Cat");
}
public override void Walk()
{
}
}
class Dog : Animal
{
public Dog()
{
}
public override void Walk()
{
// Dog implementation
// and / or calls base method
base.Walk();
}
}
Это приведет к ошибке
class Dog : Animal
{
public Dog()
{
}
}