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

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

Interfaces e classes abstratas. Conceitos de Orientação a Objeto.

Apresentações semelhantes


Apresentação em tema: "Interfaces e classes abstratas. Conceitos de Orientação a Objeto."— Transcrição da apresentação:

1 Interfaces e classes abstratas

2 Conceitos de Orientação a Objeto

3 Classes Abstratas

4 Uma classe abstrata é uma classe que não pode ser instanciada diretamente. Em vez disso, você instancia uma instância de uma subclasse. Normalmente, uma classe abstrata tem uma ou mais operações abstratas. Uma operação abstrata não tem nenhuma implementação; ela é uma declaração pura para que os clientes possam se ligar à classe abstrata. Livro texto: UML Essencial 3ª edição, pagina 80 Classes Abstratas

5 Em uma hierarquia de classe, quanto mais alta a classe, mais abstrata é sua definição Uma classe no topo da hierarquia pode definir apenas o comportamento e atributos que são comuns a todas as classes Em alguns casos, a classe nem precisa ser instanciada diretamente e cumpre apenas o papel de ser um repositório de comportamentos e atributos em comum É possível definir classes, métodos e propriedades abstratas em C#

6

7

8

9 Em Python exceção NotImplementedError Essa exceção é derivado RuntimeError. Em definidas classes base do usuário, métodos abstratos devem levantar essa exceção quando necessitam de classes derivadas para substituir o método.RuntimeError

10 deAdones Cunha responder apug-pe@googlegroups.com parapug-pe@googlegroups.com data22 de agosto de 2010 16:59 assuntoRe: [pug-pe] Como defino interfaces/classes abstratas em python?  “Acho importante ressaltar que interfaces ou classes abstratas são mais do que uma feature de uma determinada linguagem. São abstrações de responsabilidades que você atribui a uma classe. Esse tipo de "contrato" é implementado mesmo em linguagens que não dão o mesmo tipo de suporte que Java e C# dão.  Claro que em cada linguagem isso é feito de uma maneira diferente. Apenas não devemos confundir padrões de orientação a objetos com palavras reservadas de uma determinada linguagem.  Percebo que se fala muito de ser "pythonico", seguir o "ruby way" ou qualquer coisa desse tipo, ignorando padrões e convenções adotados por comunidades de linguagens diferentes das que usamos. Acho que esses padrões devem ser entendidos e até mesmo usados quando for apropriado.  No caso da implementação de classes abstratas, por exemplo, por mais que não fosse estritamente necessário a versão 2.6 vem com o módulo abc para especificar métodos abstratos. Se vocês lerem a proposta da adição desse método, verão que a motivação está puramente centrada em facilitar o seguimento de padrões de orientação a objeto...”abc proposta

11

12 Associações de Herança Exemplo de classe abstrata

13 Associações de Herança Classes abstratas As classes concretas geram instâncias As classes abstratas NÃO geram instâncias, apenas simplificam a hierarquia de herança Definem atributos e métodos para serem herdados Possui ao menos um método abstrato (que não possui implementação)

14 A maneira mais comum de iniciar uma classe ou operação abstrata na UML é colocar o nome em itálico. Você pode tornar propriedades abstratas indicando uma propriedade abstrata ou métodos de acesso. As palavras em itálicos são chatas de escrever em um quadro branco; portanto, você pode usar o rotulo : {abstract} Livro texto: UML Essencial 3ª edição, pagina 80-81

15 Interfaces

16 Uma interface é uma classe que não tem nenhuma implementação; isto é, todas as suas propriedades são abstratas as interfaces correspondem diretamente às interfaces das linguagens C# e Java e são um dia leto comum em outras linguagens tipadas. Livro texto: UML Essencial 3ª edição, pagina 81

17 Interfaces

18

19

20

21 código a seguir testa as classes

22 Notação UML para representar interface

23

24

25

26 20/10/10

27


Carregar ppt "Interfaces e classes abstratas. Conceitos de Orientação a Objeto."

Apresentações semelhantes


Anúncios Google