Criando uma classe a partir de uma classe existente: Usando herança
Na próxima lição, você aprenderá como usar herança para criar uma classe com base em uma classe existente.
Muitos objetos reais têm atributos e comportamentos em comum — por exemplo, todos os carros ter rodas e mecanismos e podem rolo e parar.No entanto, alguns carros têm atributos que não são comuns. Por exemplo, um conversível possui um teto removível, que pode ser abaixado eletronicamente ou à mão.
Se você criou um objeto para representar um carro, você poderia desejar incluir propriedades e métodos para todos os atributos comuns e comportamentos, mas não iria desejar adicionar atributos como um teto conversível, pois esse atributo não se aplica a todos os carros.
Usando herança, você pode criar uma classe "conversível" que é derivada da classe carro.Ele herda todos os atributos da classe carro e pode adicionar esses atributos e comportamentos que são exclusivos para um conversível.
Herdar de uma classe existente
A declaração Inherits é usada para declarar uma nova classe, chamada de classe derivada, com base em uma classe existente, conhecida como classe base.As classes derivadas herdam todos as propriedades, métodos, eventos, campos e constantes definidas na classe base.O código a seguir mostra a declaração de um classe derivada.
Class DerivedClass
Inherits BaseClass
End Class
A nova classe, DerivedClass, em seguida, pode ser instanciada, suas propriedades e métodos acessados da mesma forma que na BaseClass e você pode adicionar novas propriedades e métodos que são específicos para a nova classe.Por exemplo, examine a classe Persons que você criou nas lições anteriores.
Suponha que você quisesse uma classe que representasse jogadores de beisebol. Os jogadores de beisebol possuem todos os atributos definidos na classe Persons, mas também têm atributos exclusivos como número e posição.Em vez de adicionar essas propriedades para a classe Persons, você criará uma nova classe derivada que herda de Persons e adiciona as novas propriedades dessa classe.
Tente-o!
Para criar uma classe derivada
Abra o projeto Persons que você criou na lição anterior.Se você não o salvou, volte para Testando uma classe e conclua os procedimentos.
No Solution Explorer, selecione o nó de projeto Persons.
No menu Project, selecione Add Class.
No Adicionar novo item caixa de diálogo de do tipoPlayers no Nome box, e, em seguida, clicar Adicionar.
Um novo módulo de classe é adicionado ao projeto.
No Editor de Códigos, adicione o seguinte logo abaixo da linha Public Class Players.
Inherits Persons
Adicione o código a seguir para definir duas novas propriedades.
Private numberValue As Integer Private positionValue As String Public Property Number() As Integer Get Number = numberValue End Get Set(ByVal value As Integer) numberValue = value End Set End Property Public Property Position() As String Get Position = positionValue End Get Set(ByVal value As String) positionValue = value End Set End Property
No menu File, clique em Save All.
Testando a classe Players
Agora você criou um Players classe que deriva de Persons classe. O procedimento a seguir, você criará um novo programa para testar o Players classe.
Para criar um projeto de teste para sua classe
No menu File, aponte para Add, e clique New Project.
Na caixa de diálogo Add New Project, no painel Templates, selecione Windows Application.
Na caixa Name digite PlayerTeste clique em OK.
Um novo projeto Windows Forms é adicionado ao O gerenciador de soluções e um novo formulário é exibido.
In O gerenciador de soluções, selecionar o PlayerTest projeto e em seguida, sistema autônomo Projeto menu, clicar conjunto sistema autônomo projeto de inicialização.
In O gerenciador de soluções, selecionar o PlayerTest projeto e em seguida, nas Projeto menu, clicar Adicione referência.
A caixa de diálogo Add Reference é aberta.
Clique na guia Projects e em seguida, selecione Persons e clique em OK.
Clique duas vezes no formulário para abrir o Editor de Código e em seguida, digite a seguinte declaração abaixo da linha Public Class Form1.
Dim player1 As New Persons.Players Dim player2 As New Persons.Players
Isso declara duas novas instâncias da classe Players.
No menu File, clique em Save All.
Para testar a classe derivada
In O gerenciador de soluções, selecionar Form1 no PlayerTest projeto e em seguida, nas Modo de exibição menu, clicar Código.
No Editor de Códigos, adicione o seguinte código para o manipulador de eventos Form1_Load.
With player1 .FirstName = "Andrew" .LastName = "Cencini" .Number = 43 .Position = "Shortstop" End With With player2 .FirstName = "Robert" .LastName = "Lyon" .Number = 11 .Position = "Catcher" End With
In O gerenciador de soluções, selecionar Form1 no PlayerTest projeto e em seguida, nas Modo de exibição menu, clicar Designer.
Da Toolbox, arraste dois controles Button para o formulário.
selecionar a primeira Botão controle e em seguida, a Propriedades janela, conjunto seus Text propriedade para At Bat.
selecionar o segundo Botão controle e em seguida, a Propriedades janela, conjunto seus Text propriedade para On Deck.
Clique duas vezes no primeiro botão (At Bat) para abrir o Editor de Código e, em seguida, adicione o código a seguir no manipulador de eventos Button1_Click.
MsgBox(player1.Position & " " & player1.FullName & ", #" & _ CStr(player1.Number) & " is now at bat.")
Observe que você está usando o método FullName, que foi herdado da classe base Persons.
No manipulador de eventos Button2_Click, adicione o código a seguir.
MsgBox(player2.Position & " " & player2.FullName & ", #" & _ CStr(player2.Number) & " is on deck.")
Pressione F5 para executar a página.Clique em cada botão para ver os resultados.
No menu File, clique em Save All.
Próximas etapas
Nesta lição, você aprendeu como herdar de uma classe existente e como estender a classe derivada.Você pode aprender mais sobre herança em Examinar mais detalhadamente: Substituindo membros, ou ir para a próxima lição e aprender sobre coleções.
Próxima Lesson: Usando coleções para gerenciar vários objetos