"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Virtual vs. Novo em C#: Quando substituir ou ocultar métodos de classe base?

Virtual vs. Novo em C#: Quando substituir ou ocultar métodos de classe base?

Publicado em 2025-01-29
Navegar:660

Virtual vs. New in C#: When to Override or Hide Base Class Methods?

o uso de palavras -chave virtuais e novas em

em c# Na programação orientada ao objeto, geralmente é definido na classe base e esses métodos são reescritos ou redefinidos na classe derivada. Embora as palavras -chave "virtuais" e "novas" possam ser usadas para modificar a declaração do método, elas têm diferentes métodos de implementação.

reescrita Dirtual

O método declarado na classe base como "virtual", indicando que as subclasses podem ser reescritas.

    permite que classes derivadas forneçam diferentes métodos para implementação sem destruir a cadeia de herança.
  • nova palavra -chave

declare um novo método de mesmo nome que o método chinês da fundação na classe derivada.

Ocultar o método básico e criar uma nova implementação na classe derivada.
  • Destroe a cadeia de herança, o que significa que o método derivado não está relacionado ao método base.
  • Exemplo
considere o seguinte código:

base de classe pública {{ public virtual bool Dosomething () {return false;} } Classe Pública Derivada: Base: Base {{ Public Substitua bool Dosomething () {return true;} }

;

base a = new Derived (); a.dosomething ();
public class Base
{
    public virtual bool DoSomething() { return false; }
}

public class Derived : Base
{
    public override bool DoSomething() { return true; }
}

Base a = new Derived();
a.DoSomething(); // 返回 true

use a reescrita virtual para herdar e expandir comportamentos, mantendo a cadeia de herança.

 use o novo para criar uma nova implementação independente, destruindo assim a cadeia de herança. 
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3