Herança em POO É um mecanismo existente no paradigma Orientado a Objectos que permite a...

Preview:

Citation preview

Herança em POO

É 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

ExemplosHerança em POO

Herança no VBSintaxe

• Classe Base

• Classes Derivadas Palavra-Chave: Inherits

Exemplo

Não-exemplo

Pilares da POO

Abstracção Herança e PolimorfismoEncapsulamento

Exemplo – Cont.

Classe Base(características comuns)

Classe Derivada(características específicas)

Possui os atributos e os métodos da classe base

Superclasse

Subclasse

Hierarquia

Palavra-Chave:

Inherits

Herança no VBSintaxe – Cont.

Pessoa => Classe base

Pessoa

estudante professor

Classes derivadas

Estudante Professor

Polimorfismo

Ambos possuem uma mesma função que é gravar

mas esta função é realizada de forma diferente

• 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, osobjectos poderão ter comportamentos diferentes (muitas formas).

Polimorfismo “Pilar da POO”

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

veículo Acelerar()

Acelerar()Acelerar()

forma getArea()

getArea()getArea()getArea()

Actividade

Actividade

Actividade

Classe Base

Classes Derivadas

Actividade

Na classe derivada:

Na classe base:

Public overloads Function getArea() As Double

Public Function obterArea() As Double

objecto.getArea()

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()) End Sub

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()) End Sub

Private Sub SairToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SairToolStripMenuItem.Click Me.Close() End SubEnd Class

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.

Mensagens em POO

• Elementos básicos: Classes

• 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

Deco29

central

Deco.Lista()

Deco.Passa()

Deco.Recebe()

Deco.Finta()Deco.Marca()Figo34

médio

Figo.Lista()

Deco.Recebe()

Figo.Passa()

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: 34função: “médio”

Jogador:Deco

nome: “Deco”idade: 29função: “central”

Jogador1.Ganhou()

Jogador1.estado()

Altera o estado(atributo jogadas)

Jogo1. jogar()

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).

JogoGalo:Jogo1

jogadas(2,2)nJogadas

JogodorxPC:Jogo2

jogadas(2,2)nJogadas

Jogo2.JogadaComputador()

Jogo2. JogarAtaque()

Comunicação em POO

Atributos

Finta

Marca

Lista

Passa

Recebe Nome

Idade

Função

Métodos(encapsulados)

(Interface)

Classe Jogador

Pos_x Pos_y

Tem bola

Finta

Marca

Lista

Passa

RecebeDesloca

+ Métodos

Comunicação em POOElementos

A comunicação entre os objectos dá-se através de mensagens trocadas pela interface (ou protocolo) especificada para o objecto.

Análogo a uma chamada de função

Mensagem: permitem a activação de ummétodo/propriedade do objecto

Interface: conjunto de métodos e atributos definidos na classe e oferecidos pelo objecto

Comunicação em POOElementos

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.

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

Candida
Ou seja o comportamento do objecto vai variar em função do seu estado

Recordar…

seleccionar aspectos importantes para o problema (abstrair entidades, acções, relacionamento, etc, ) capturar a estrutura da realidade

Agrupamento de elementos reais que possuem um conjunto atributos e comportamentos comuns

Abstracção

Classificação

Problema

representação VB

Recordar…

Veículo

Carro

geral

especifico

Classe Base

Classes Derivadas

Herança

Polimorfismo

Comunicação

Bicicleta

Recommended