Когда я хочу определить новую реализацию не виртуального метода, тогда я мог бы использовать ключевое слово new
в ключе C# или shadow
в VB. Например:Что такое VB «Shadow» или C# «новое» ключевое слово Equivalent в Java?
C# код:
public class Animal
{
public void MyMethod()
{
//Do some thing
}
}
public class Cat : Animal
{
public new void MyMethod()
{
//Do some other thing
}
}
VB код:
Public Class Animal
Public Sub MyMethod()
'Do some thing
End Sub
End Class
Public Class Cat
Inherits Animal
Public Shadows Sub MyMethod()
'Do some other thing
End Sub
End Class
Теперь мой вопрос:
Что такое VB Shadow
(или C# new
) Ключевое слово эквивалент в Java?
Обратите внимание, что вы не * переопределяете метод в этом случае, вы определяете новую реализацию, начиная с этой точки в иерархии классов. Это другое. Переопределение имеет весьма специфическую семантику, особенно то, как вызовы этого метода обрабатываются для переменных, которые имеют супертип. И затенение реализации метода супертипа имеет другую семантику. – Joey
@Joey Я редактирую свой вопрос для новой реализации вместо ключевого слова override. Спасибо за внимание. – Behzad