Examinar mais detalhadamente: Substituindo membros

Nesta lição, você aprenderá como substituir um membro de um classe derivada.

Na lição anterior, você aprendeu a herdar de uma classe base e estender a classe derivada com as novas propriedades.Além de adicionar novas propriedades ou métodos a uma classe derivada, você pode também desejar alterar, ou substituir, o comportamento de métodos ou propriedades existentes.

Por exemplo, você pode criar uma classe Truck que é derivada de uma classe Car que tem um método StartEngine.Se o caminhão tiver um mecanismo a diesel, o processo de iniciar o mecanismo pode ser diferente do de um carro; nesse caso, você teria que substituir o método StartEngine para melhor se ajustar ao caminhão.

Sobrescrevendo propriedades e métodos

Por padrão, propriedades e métodos em uma classe não podem ser substituídos.Para permitir que uma classe derivada substitua uma propriedade ou método, ela deve ser marcada como substituível, declarando-a com a palavra-chave Overridable.

Public Overridable Property EngineType As String

Public Overridable Sub StartEngine(ByVal EngineType As String)

Ao herdar de uma classe base, as propriedades e os métodos que estão marcados como Overridable podem ser usados como estão, ou eles podem ser modificados para atender às suas necessidades, declarando-os com a palavra-chave Overrides.

Public Overrides Property EngineType As String

Public Overrides Sub StartEngine(ByVal EngineType As String)

Na classe Players que você criou na lição anterior, você talvez queira substituir o método FullName para incluir o número do jogador e eliminar o código que retorna um nome do meio.

Tente-o!

Para substituir o método FullName

  1. Abra o projeto Persons que você criou na lição anterior.Se você não o salvou, volte para Criando uma classe a partir de uma classe existente: Usando herança e conclua os procedimentos.

  2. No Solution Explorer, selecione o nó Persons.vb e em seguida, no menu View, escolha Code.

  3. No Editor de Códigos, modifique a declaração para o método FullName da seguinte maneira.

    Public Overridable Function FullName() As String
    
  4. No Solution Explorer, selecione o nó Persons.vb e em seguida, no menu View, escolha Code.

  5. No Editor de Código, adicione o seguinte código para a classe.

    Public Overrides Function FullName() As String
        FullName = FirstName & " " & LastName & ", #" & numberValue
    End Function
    
  6. No Solution Explorer, selecione o nó Form1.vb no projeto PlayerTest e em seguida, no menu View, escolha Code.

  7. No Editor de Códigos, altere o código do evento Button1_Click como segue.

    MsgBox(player1.Position & " " & player1.FullName & _
          " is now at bat.")
    
  8. Modifique o código do evento Button2_Click da seguinte maneira.

    MsgBox(player2.Position & " " & player2.FullName & _
          " is on deck.")
    
  9. Pressione F5 para executar o programa e clique em cada botão para exibir os resultados.

    Observe que os resultados são o mesmo que antes, apesar de você agora estar utilizando o método substituído FullName.

  10. No menu File, clique em Save All.

Próximas etapas

Nesta lição, você aprendeu como substituir um método.Na próxima lição, você aprenderá como usar coleções para gerenciar grupos de objetos semelhantes.

Próxima Lesson: Usando coleções para gerenciar vários objetos

Consulte também

Tarefas

Criando uma classe a partir de uma classe existente: Usando herança

Referência

Overridable

Substitui