Linguagens de Programação Orientadas a Objetos
Download
1 / 9

Linguagens de Programação Orientadas a Objetos - PowerPoint PPT Presentation


  • 64 Views
  • Uploaded on

Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes [email protected] Aula 21 e 22- Classes Abstratas e Interfaces http://www.ufpa.br/sampaio/bd2003/lpoo Elaborado pelos professores: Admilson Ribeiro e Marco Fagundes.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Linguagens de Programação Orientadas a Objetos' - nola


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

Linguagens de Programação Orientadas a Objetos

Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa

Marco Fagundes

[email protected]

Aula 21 e 22- Classes Abstratas e Interfaces

http://www.ufpa.br/sampaio/bd2003/lpoo

Elaborado pelos professores: Admilson Ribeiro e Marco Fagundes

 Marco Fagundes


Classes abstratas
Classes abstratas

  • Permite a definição de uma classe que declara a estrutura de uma abstração sem fornecer a implementação de cada método

  • A responsabilidade da implementação dos métodos é das subclasses

  • É utilizado o modificador abstract para declarar os métodos abstratos.

  • Uma classe abstrata tem tudo que uma classe concreta tem mais métodos abstratos

  • Herança Simples (extends)


Classes abstratas1
Classes abstratas

public abstract class classeabstrata{}

  • Tais classes não podem ser instanciadas diretamente com o operador new

  • Não se pode declarar construtores abstract, ou métodos abstract static

  • Toda subclasse de uma classe abstract deve implementar todos os métodos abstract na superclasse


Exemplo
Exemplo

abstract class Abst01 {

abstract void proc01( );

void procConcr( ){

System.out.println(“Dentro do metodo concreto de Abst01”);

}

}

class Concr01 extends Abst01 {

void proc01( ) {

System.out.println(“Dentro do metodo concreto de Concr01”);

}

}

class TestaAbstrata {

public static void main(String args[ ]){

Abst01 a = new Concr01( );

a . proc01( );

a . procConcr( );

}

}


Interfaces
Interfaces

  • Uma interface é uma especificação explícita de um conjunto de métodos, que são implementados por uma classe

  • Uma determinada classe pode implementar um número ilimitado de interfaces (herança múltipla)

  • Interface é uma expressão de projeto enquanto que uma classe é uma combinação de projeto e implementação


Interfaces1
Interfaces

  • Nas interfaces, os métodos são declarados sem nenhum corpo

  • Para implementar uma interface, a classe tem que implementar os conjuntos de métodos declarados

  • Esses métodos devem corresponder exatamente às assinaturas dos método da interface


Declara o interface
Declaração interface

interface nome {

tipo-retornado nome-metodo1(lista-parametros);

tipo-retornado nome-metodo2(lista-parametros);

. . .

tipo nome-var1 = valor;

tipo nome-var2 = valor;

. . .

}

interface Chamada {

void proc1 (int param);

}


Declara o implements
Declaração implements

class nomeclasse [extends superclasse]

[implements interface0 [,interface1 . . .] } {

corpo-da-classe

}

class Cliente implements Chamar{

void proc1 (int p) {

System.out.println(“método chamada com “ + p);

}

}


Declara o implements1
Declaração implements

class Cliente implements Chamar{

void proc1 (int p) {

System.out.println(“método Chamar com “ + p);

}

}

class TestaInterface{

public static void main (String args[ ]){

Chamar c = new Cliente( );

c.(42);

}

}


ad