Programa o orientada objetos
This presentation is the property of its rightful owner.
Sponsored Links
1 / 28

Programação Orientada à Objetos PowerPoint PPT Presentation


  • 33 Views
  • Uploaded on
  • Presentation posted in: General

Programação Orientada à Objetos. Aula 9 – Herança. Herança. ● Conceito:

Download Presentation

Programação Orientada à Objetos

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Programa o orientada objetos

Programação Orientada à Objetos

Aula 9 – Herança


Heran a

Herança

● Conceito:

– Herança é a capacidade de especializar tipos de objetos (classes), de forma que os tipos especializados contenham, além de características estruturais e comportamentais já definidas pelos seus “ancestrais”, outras definidas para eles próprios.

● Forma:


Heran a em poo

Herança em POO

  • Herança é um conceito chave usado na orientada ao objeto para descrever uma relação entre classes

  • Através da herança uma classe copia ou herda todas as propriedades, atributos e métodos de uma outra classe, podendo estender sua funcionalidade

  • A classe que cede os membros para a outra é chamada super-classe, classe base ou classe ancestral

  • A classe que herda os membros de uma outra é chamada sub-classe ou classe derivada

  • A herança evita a reescrita de código e especifica um relacionamento de especialização/generalização


Heran a e uml

Herança e UML

  • A UML (UnifiedModelingLanguage) – Linguagem de Modelagem Unificada – é uma linguagem padrão baseada em diagramas utilizada para modelar sistema orientados a objetos

  • A estrutura de uma classe e seus relacionamentos podem ser visualizados em um Diagrama de Classes

  • A herança no diagrama de classes é indicada por uma seta da classe derivada para a classe ancestral


Heran a1

Herança

● A especialização pode ser feita tanto a partir de classes já construídas pelo próprio programador, como por classes de terceiros ou classes-padrão da linguagem específica.

Classe feita pelo programador -> Classe “Pessoa”, “Avião”, “Cachorro”

Classes padrões -> “System” utilizada através do Using


System object

System.Object

  • A classe System.Object é a classe ancestral de qualquer classe em C#, mesmo que não declarada

    • class Empregado { ...

    • }

    • class Empregado : System.Object { ...

    • }

  • Métodos herdados de System.Object

    • Equals – Testa se dois objetos são iguais

    • GetHashCode – Retorna o código de hash para o objeto

    • GetType – Retorna informação sobre a classe do objeto

    • ToString – Retorna o objeto como string


Composi o

Composição

● Conceito:

– É a técnica de construir um tipo não pela derivação partindo de outra classe, mas pela junção de vários outros objetos de menor complexidade que fornecem ao objeto composto determinada funcionalidade quando em conjunto.

● Forma:


Composi o1

Composição

Exemplo de composição:


Composi o2

Composição

● Não há nenhuma palavra-chave ou recurso especial para utilizar composição em c#, visto que esta técnica nada mais é do que um modo particular, para cada situação, de agrupar classes existentes de forma a criar novas classes com novas funcionalidades em determinado arranjo.


Heran a2

Herança

  • A herança, juntamente com o encapsulamento e polimorfismo, é um dos três características primárias (ou pilares de ) da programação orientada a objeto

  • A herança permite que criar novas classes que reutilizem, estendam e modifiquem um comportamento que é definido em outras classes.


Heran a3

Herança

  • A classes que é herdada é chamada de

    • Classe base

    • Classe Pai

    • Classe Mãe

    • Super Classe

  • A classe que herda de outra classe é chamada de:

    • Classe derivada

    • Classe Filho

    • Sub Classe


Heran a4

Herança

  • Conceitualmente, uma classe derivada é uma especialização da classe base.

  • Diferente do JAVA, C# aceita herança múltipla e herança simples.


Exemplo de heran a

Exemplo de Herança


Exemplo de heran a1

Exemplo de Herança


Encapsulamento e polimorfismo

Encapsulamento e Polimorfismo

  • Encapsulamento é o conceito da POO relacionado com a visibilidade dos membros da classe

    • O símbolo – indica os membros privados

    • O símbolo # indica os membros protegidos

    • O símbolo + indica os membros públicos

  • Polimorfismo é o conceito da POO que ocorre quando objetos de classes distintas em uma hierarquia realizam uma mesma operação (mesmo método) de forma diferente


Heran a em c

Herança em C#

  • A sintaxe para declarar uma classe que herda de outra em C# é:

    • class DerivedClass : BaseClass {

    • ...

    • }

  • Sub-classes podem ser normalmente classes base para outras heranças:

    • class DerivedSubClass : DerivedClass {

    • ...

    • }

  • As classes herdam apenas de uma classe base

  • Uma classe sealed (selada) não pode ser herdada


Heran a em c1

Herança em C#

  • Classe base


Heran a em c2

Herança em C#

  • Classe derivada


Modificadores de acesso

Modificadores de Acesso

  • Em C# existem o seguintes modificadores de acesso

  • public

    •  Um método definido como Public pode ser acessado por qualquer classe de qualquer projeto

  • private

    •  Este modificador é o mais restrito, somente a classe onde ele foi definido é que pode acessá-lo, nenhuma outra tem permissão, nem mesmo as classes que herdam da classe onde o método foi definido.


Modificadores de acesso1

Modificadores de Acesso

  • protected

    •  Somente as classes que herdam da classe que contem o método protegido (protected) tem permissão para acessá-lo e as classes que estão no mesmo pacote.


Heran a em c3

Herança em C#

● Observação: Vale relembrar a semântica relacionada aos símbolos utilizados para

representar o nível de encapsulamento de um atributo ou método, de acordo com a

terminologia da linguagem UML[RBJ06].


Heran a em c4

Herança em C#

Exemplo:


Construtores

Construtores

  • Instanciar um objeto de uma classe derivada inicia uma cadeia de chamadas de contrutores.

  • Antes de realizar suas tarefas o contrutor da classe derivada invoca o construtor da classe base

  • Assim, podemos dizer que sempre que criamos um objeto da classe derivada estamos criando também um objeto da classe base


Heran a em c5

Herança em C#

● Construtores em subclasses

– A sequência de execução dos construtores sempre acontece no sentido top-down, ou seja, desde a superclasse, passando por todos os níveis da hierarquia, até chegar à subclasse em questão, como pode ser visto na Figura 4.5.


Exemplo classe base

Exemplo – classe base


Exemplo classe derivada

Exemplo – classe derivada


Heran a x construtores

Herança x Construtores

  • Os construtores da classe ancestral podem (e devem) ser chamados pelo construtor da classe derivada com a palavra reservada base

    • class Empregado{

    • private string nome;

    • protected double salarioFixo;

    • public Empregado(string aNome, double aSalarioFixo) {

    • nome = aNome;

    • salarioFixo = aSalarioFixo;}

    • }

    • class Gerente : Empregado{

    • private double gratificacao;

    • public Gerente(string aNome, double aSalarioFixo, double

    • aGratificacao): base(aNome, aSalarioFixo){

    • gratificacao = aGratificacao; }

    • }


Exerc cios

Exercícios

● Explique em poucas palavras o que seria uma herança em C#.

● Explique de que maneira o uso da herança promove a reutilização de código.

● Qual a utilidade de se definir métodos e atributos com o modificador de acesso protected?


  • Login