Наследование классов, вынуждающее новые классы реализовывать определенные функции

Хорошо, поэтому я связываюсь с несколькими вещами, в частности с интерфейсами.

Скажем, что у меня есть класс 'Cat' с его основой, как 'Animal' Animal имеет метод в нем, как так

public virtual void Walk()
{
    // Do walking stuff
}

Так Cat бы переопределить его с:

public override void Walk()
{
    // Do cat specific walking stuff
}

Просто правильно?

Вот мой вопрос, хотя, есть ли способ заставить кошку переопределить базовый метод Walk ()? Так что, если другой разработчик добавил класс Dog, они будут вынуждены реализовать свой собственный метод Walk (даже если он был просто базовым. Walk ())?

Так интерфейсы типа решает это, это то, что я пробовал

Кот: Животное: интерфейс Животное должно реализовать метод Walk, но Cat не

Cat: Animal, Interface Кэт должен реализовать метод Walk, но если разработчик не добавит или не забудет «», Interface «», то он «» сломает «» его.

Может ли кто-то дать мне какой-то указатель на то, чтобы пойти по этому поводу?

Спасибо.

Редактировать 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()
    {

    }
}
-121--1741722- , эквивалентной su в powershell Допустим, я администратор в Windows7 ящике. Я хотел бы иметь возможность выполнять команды как другие пользователи, не зная их паролей. Вот что происходит на linux. Если я корень, я могу «сю» с другими...

Допустим, я администратор в Windows7 ящике. Я хотел бы иметь возможность выполнять команды как другие пользователи, не зная их паролей. Вот что происходит на linux. Если я корень, я могу «su» к другим учетным записям без предоставления пароля и выполнять команды от своего имени.

10
задан Arnaud 4 October 2011 в 19:13
поделиться