Я не уверен, что это лучше подходит программистам на SE.Overriding and New
Я узнаю о наследовании, в частности, как использовать переопределения - я вижу, что я могу либо использовать переопределение для расширения функциональности, либо нового для создания новых функций.
EG
public override int Calls(int i)
{
//Do some things
return base.Calls(i);
}
выше делает логику, а затем вызывает базовый класс.
Если я новый
public new int Calls(int i)
Тогда я могу реализовать свою собственную логику, как будто никогда не существовал базовый класс (как это никогда не называли).
Что меня смущает, я могу просто удалить вызов базового класса из моего метода переопределения, а я думаю Я получаю те же результаты, что и новый. Значение
public override int Calls(int i)
{
//Do some things
// return base.Calls(i); COMMENTED OUT, no base class call
}
выше фрагмент кода, безусловно, является такой же, как public new int Calls(int i)
Мой вопрос, я прав - это это, в конечном счете 2 способа сделать то же самое, так что она становится лучше с точки зрения ясности для разработчика (с использованием переопределения или нового) или существуют ли какие-либо другие различия между двумя (любыми полученными).
Вы пробовали использовать метод 'Calls' через переменную, объявленную как * базовый класс *? –
Это не одно и то же. Попробуйте googling «override vs new C#». – samjudson