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
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.
No Solution Explorer, selecione o nó Persons.vb e em seguida, no menu View, escolha Code.
No Editor de Códigos, modifique a declaração para o método FullName da seguinte maneira.
Public Overridable Function FullName() As String
No Solution Explorer, selecione o nó Persons.vb e em seguida, no menu View, escolha Code.
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
No Solution Explorer, selecione o nó Form1.vb no projeto PlayerTest e em seguida, no menu View, escolha Code.
No Editor de Códigos, altere o código do evento Button1_Click como segue.
MsgBox(player1.Position & " " & player1.FullName & _ " is now at bat.")
Modifique o código do evento Button2_Click da seguinte maneira.
MsgBox(player2.Position & " " & player2.FullName & _ " is on deck.")
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.
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