A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Herança em POO Importante:

Apresentações semelhantes


Apresentação em tema: "Herança em POO Importante:"— Transcrição da apresentação:

1 Herança em POO Importante:
É um mecanismo existente no paradigma Orientado a Objectos que permite a reutilização dos membros (atributos, propriedades, métodos) de uma classe (superclasse) ao definir-se novas classes (subclasses) a partir dela. Importante: Os construtores não são herdados!!!! Uma subclasse deriva apenas de uma superclasse Só os membros públicos ou friend da superclasse podem ser herdados pelas classes derivadas

2 Exemplos Herança em POO

3 Herança no VB Sintaxe Classe Base Classes Derivadas
Palavra-Chave: Inherits

4 Exemplo

5 Não-exemplo

6 Pilares da POO Abstracção Encapsulamento Herança e Polimorfismo
Herança é a propriedade de uma classe de herdar o comportamento de outra A herança em orientação a objectos resulta em árvores genealógicas que estruturam todo o sistema A herança é a chave do polimorfismo, onde um objecto pode ser representado por um de seus parentes Visibilidade e acesso no encapsulamento O uso de métodos como interface deve garantir o reaproveitamento e actualização do objecto Um objecto externo tem acesso aos métodos e estes têm garantido o acesso a atributos definidos na classe Existem também métodos privados, acessíveis somente por métodos do mesmo objecto Métodos também podem ter acesso a membros ocultos no processo de derivação Idealmente, a mensagem isola completamente os objectos entre si possibilitando o encapsulamento total entre dado e código

7 Exemplo – Cont. Classe Base (características comuns)
Hierarquia Classe Base (características comuns) Superclasse Classe Derivada (características específicas) Herança é uma propriedade existente no paradigma orientado a objectos que permite a reutilização da estrutura e do comportamento de uma classe ao definir-se novas classes A classe que herda o comportamento é chamada de subclasse e a que definiu o comportamento superclasse Relação de herança nas propriedades: A subclasse herda as propriedades (atributos, operações e relações) da superclasse, podendo acrescentar outras É o mecanismo para expressar a similaridade entre classes, simplificando a definição de classes iguais que já foram definidas Herança - possibilidade de derivação de novas classes a partir de outras já existentes, recebendo os seus atributos e funcionalidades Possui os atributos e os métodos da classe base Subclasse

8 Herança no VB Sintaxe – Cont.
Palavra-Chave: Inherits

9 Pessoa => Classe base
estudante professor

10 Classes derivadas Estudante Professor

11 Polimorfismo Ambos possuem uma mesma função que é gravar
mas esta função é realizada de forma diferente

12 Polimorfismo veículo Invocam o método acelerar acelerar usa um motor
Todos os veículos possuem um modo de acelerar veículo Invocam o método acelerar acelerar usa um motor usa pedais e corrente Por outras palavras, temos objectos diferentes (carro, moto, bicicleta) que derivam de uma mesma classe (veículo). Esta classe possui um método Acelerar e, deste modo, podemos utilizar os diferentes objectos de modo polimórfico, invocando um método de mesmo nome, mas que possui implementação e comportamento diferente em cada um dos objectos. Mas com implementação e comportamento diferente em cada um dos objectos

13 Polimorfismo “Pilar da POO”
O polimorfismo é uma característica importante da programação orientada a objectos e está directamente ligada à herança entre classes. “O polimorfismo ocorre quando um método que já foi definido na classe base é redefinido na classe derivada com um comportamento diferente.” A ideia do polimorfismo é que embora a mensagem seja a mesma, os objectos poderão ter comportamentos diferentes (muitas formas).

14 Polimorfismo “Pilar da POO”
Polimorfismo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe derivada. É necessário que os métodos tenham exactamente a mesma identificação forma veículo Acelerar() getArea() getArea() getArea() getArea() Acelerar() Acelerar()

15 Actividade

16 Actividade

17 Actividade Classes Derivadas Classe Base

18 Actividade Na classe base: Public Function obterArea() As Double
Na classe derivada: Public overloads Function getArea() As Double objecto.getArea()

19 Actividade Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim r As New Retangulo(txt_altura.Text, txt_base.Text) MsgBox("Área do retângulo de base=" & txt_base.Text & " e altura=" & txt_altura.Text & " : " & r.getArea()) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim r As New Triangulo(txt_base.Text, txt_altura.Text) MsgBox("Área do triângulo de base=" & txt_base.Text & "e altura=" & txt_altura.Text & " : " & r.getArea()) Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim r As New Quadrado(txt_lado.Text) MsgBox("Área do quadrado de lado " & txt_lado.Text & ": " & r.getArea()) Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click Me.Close() End Class

20 Vantagens do Polimorfismo
Uma mesma mensagem pode provocar respostas diferentes quando recebidas por objectos diferentes. Vantagem Com o polimorfismo, pode-se enviar uma mensagem genérica e deixar a implementação a cargo do objecto receptor da mensagem. Para haver polimorfismo é necessário: Herança Sobrescrita (sobreposição de método) chamar método sobrescrito do objecto da subclasse, quando este objecto é referenciado por uma variável do tipo da superclasse

21 Mensagens em POO Elementos básicos: Mensagens Classes Objectos
atributos + métodos não executáveis Objectos variáveis (dinâmicas) criadas a partir das classes estado + comportamento podem ser criados, copiados, destruídos, passados como argumentos, devolvidos como resultado... Mensagens actuam sobre objectos invocação os membros (métodos/propriedades) descritos na classe Existem três elementos básicos que devem ser considerados no modelo de POO: as classes; os objectos; as mensagens. As classes fazem parte do modelo conceptual e definem como o programa vai estar organizado, através da relação de herança e dos atributos e métodos, definidos para cada classe Os objectos vão ser as variáveis do programa, criadas a partir das classes já definidas. São os objectos que “dão vida” ao programa As mensagens são a forma de comunicação entre os objectos, invocando os métodos que foram definidos para a sua classe (no fundo, determinarão a evolução do programa)

22 Mensagens em POO Uma mensagem é dirigida a um objecto e
provoca a execução de um membro que utiliza e/ou altera os valores dos seus atributos - o seu estado. pode provocar o envio de novas mensagens por parte deste, quer para ele próprio (internas), quer para outros objectos (externas). Jogador:Figo nome: “Figo” idade: 34 função: “médio” Jogador:Deco nome: “Deco” idade: 29 função: “central” Deco.Recebe() Figo.Passa() Figo 34 médio Figo.Lista() Deco.Passa() Deco.Recebe() Deco 29 central Deco.Lista() Deco.Finta() Deco.Marca()

23 Mensagens em POO Uma mensagem é dirigida a um objecto e
provoca a execução de um método que utiliza e/ou altera os valores dos seus atributos - o seu estado. pode provocar o envio de novas mensagens por parte deste, quer para ele próprio (internas), quer para outros objectos (externas). JogodorxPC:Jogo2 jogadas(2,2) nJogadas JogoGalo:Jogo1 jogadas(2,2) nJogadas Altera o estado (atributo jogadas) Jogo1. jogar() Jogador1.Ganhou() Jogador1.estado() Jogo2.JogadaComputador() Jogo2. JogarAtaque()

24 Comunicação em POO Classe Jogador Atributos + Métodos Métodos Finta
Marca Lista Passa Recebe Desloca Finta Marca Lista Passa Recebe Nome Idade Pos_x Pos_y Tem bola Por exemplo, no nosso simulador podíamos querer esconder o método «desloca». Esse método apenas vai ser invocado por mensagens internas do objecto, quando, por exemplo, lhe é enviado a mensagem para fintar, internamente ele envia uma mensagem para se deslocar. Se mais tarde quiséssemos alterar o método usado para deslocar um jogador para outro mais sofisticado, não teríamos que alterar o programa todo... Aquilo que vai estar acessível aos outros objectos é designado por interface! Função Atributos + Métodos (encapsulados) Métodos (Interface)

25 Comunicação em POO Elementos
Mensagem: permitem a activação de um método/propriedade do objecto Interface: conjunto de métodos e atributos definidos na classe e oferecidos pelo objecto A comunicação entre os objectos dá-se através de mensagens trocadas pela interface (ou protocolo) especificada para o objecto. Assim, a interface é.... E são as mensagens que vão activar esses métodos (ou alterar os atributos se estiverem visíveis) E como se processa a comunicação? A interacção entre os objectos, ou seja, a evolução do programa, dá-se através da troca de mensagens! Como? Através da invocação dos métodos/atributos da interface (ou protocolo) especificada para o objecto. Análogo a uma chamada de função

26 Comunicação em POO Elementos
Mensagem: permitem a activação de um método/propriedade do objecto Interface: conjunto de métodos e atributos definidos na classe e oferecidos pelo objecto Todos os objectos de uma mesma classe possuem a mesma interface e aplicam o mesmo método em resposta a uma mensagem idêntica. O valor retornado pode, no entanto, variar em função dos valores dos seus atributos e da existência de polimorfismo nas classes.

27 Recordar… Problema seleccionar aspectos importantes para o problema (abstrair entidades, acções, relacionamento, etc, ) capturar a estrutura da realidade Abstracção Agrupamento de elementos reais que possuem um conjunto atributos e comportamentos comuns Classificação representação VB

28 Recordar… ? geral Classe Base Veículo Classes Derivadas Carro
Bicicleta especifico Herança ? Possibilitam a herança Polimorfismo Comunicação


Carregar ppt "Herança em POO Importante:"

Apresentações semelhantes


Anúncios Google