Сокрытие методов

Использование модификатора new позволяет скрыть переопределенный метод за новым, с таким же названием. Новый метод может иметь отличную сигнатуру. Сокрытие методов не следует путать с переопределением методов, потому что сокрытие методов не позволяет использовать полиморфизм.

class Foo : Object {
    public void my_method() { }
}

class Bar : Foo {
    public new void my_method() { }
}

Вы все еще можете вызвать первоначальный метод приведения к основному классу, или интерфейсу:

void main() {
    var bar = new Bar();
    bar.my_method();
    (bar as Foo).my_method();
}

Last updated