Click here to load reader
Upload
vitor-silva
View
1.701
Download
0
Embed Size (px)
Citation preview
Desenvolvimento em .NET
Herança e Interfaces
Objectivos● Perceber conceito de herança● Dominar terminologia aplicável● Conhecer keywords aplicáveis● Perceber aplicabilidade de Classes Abstractas● Perceber conceito de interfaces● Distinguir utilização de interfaces e classes
abstractas
Herança● Criar especializações● Base class / derived class● Base class é mais genérica que derived class● Derived class é mais especifica que base class● Base class pode sempre ser substituida por
derived class● Uma classe só pode herdar de uma outra
classe
Construtor● boa prática
– mybase.new● nota
– acessibilidade dentro da mesma familia
Keywords● inherits● overridable / overrides● not inheritable => classe / not overridable =>
funções● shadows
Cenário● Terceiros (base class)
– Cliente / Fornecedor (derived class)● ambos têm um método DeterminarMorada() que de
formas diferentes determinam a morada apropriada● Artigo (base class)
– Produto / Serviço (derived class)● ambos têm um método CalcularValor() que de formas
diferentes calcula o valor final
● Problema– Base class sabe que é obrigatorio implementar
determinado método / propriedade, mas não sabe os detalhes de implementação ou então propõe uma solução
● Solução– MustInherit / MustOverride
Classes Abstractas
Exercicio● Criar novo projecto chamado 0006_Heranca3
Exercicio
Exercicio
Exercicio
Interface● é um contrato● não tem nenhuma implementação● uma classe pode implementar mais do que um
interface● Convenção – nome do interface começa
sempre por I. ex: IPesquisavel
Herança ou Interface● Herança
– indica uma relação “is a” que será SEMPRE válida● um cliente será sempre um terceiro
● Interface– especifica uma potencialidade
● um artigo é pesquisável assim como um terceiro também é pesquisável
– especifica um conjunto de caracteristicas (métodos / propriedades)
Vantagens Interface● Como não tem implementação é mais rápido
de definir● Permite partilhar um “contrato” entre objectos
não relacionados hierarquicamente– um artigo não é um terceiro mas os dois podem ser
pesquisáveis● Normalmente recomenda-se a definição de
Interfaces em deterimento da definição de Classe Abstractas
Exercicio● Criar novo projecto chamado 0008_Interface
Exercicio
Exercicio
Exercicio
Exemplo MultiITV● Acesso a dados via Application Server, XML,
ODBC– todos têm que implementar (à sua maneira) o
mesmo conjunto de métodos:● Open(), Close(), Execute()
– partilham um conjunto de métodos e propriedades● State, ConnectionProperties, RuntimeProperties,
InicializarComandos()● no código só faço connection.Execute
– pedido reencaminhado para acesso a dados específico.
Objectivos● Perceber conceito de herança● Dominar terminologia aplicável● Conhecer keywords aplicáveis● Perceber aplicabilidade de Classes Abstractas● Perceber conceito de interfaces● Distinguir utilização de interfaces e classes
abstractas