Desenvolvimento em .Net - Herança e Interfaces
Upcoming SlideShare
Loading in...5
×
 

Desenvolvimento em .Net - Herança e Interfaces

on

  • 3,140 views

 

Statistics

Views

Total Views
3,140
Views on SlideShare
3,069
Embed Views
71

Actions

Likes
0
Downloads
16
Comments
0

5 Embeds 71

http://blog.osmeusapontamentos.com 57
http://www.slideshare.net 7
http://osmeusapontamentos.com 4
http://cleberprogrammer.wordpress.com 2
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Desenvolvimento em .Net - Herança e Interfaces Desenvolvimento em .Net - Herança e Interfaces Presentation Transcript

  • 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
  • Classes Abstractas ● 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
  • 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