Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Clase abstracte si interfete

java



+ Font mai mare | - Font mai mic



Clase abstracte si interfete

In limbajul Java se pot preciza modele de functionare care urmeaza sa fie implementate. Acestea se introduc prin intermediul claselor abstracte si a interfetelor.



O clasa abstracta este o supraclasa pentru o ierarhie de clase. Ea contine variabile si metode obisnuite carora li se specifica semnatura. Unele metode pot fi chiar implementate in clasa abstracta. Acestea definesc functionarea comuna a claselor care formeaza ierarhia. Alte metode, precizate doar ca prototip, urmeaza sa fie obligatoriu implementate in subclase. Ele sunt insotite de atributul abstract. O clasa este considerata abstracta daca contine macar o metoda abstracta. De aceea nu este neaparat obligatoriu ca ea sa fie declarata cu abstract. In clasele care extind clasa abstracta se pot defini sI noi membrii (variabile sau metode) care nu au fost precizati in clasa abstracta.

In exemplul care urmeaza definim clasa abstracta Poligon. In cadrul ei se regasesc cele amintite mai sus.

Exemplul 7

abstract class Poligon

protected void setLaturi(float aas)

catch(Exception e)

}

}

abstract void list();

abstract float perimetru();

}

Clasa contine variabila membra nrLaturi, tablul Lat care va contine lungimile laturilor, metodele setNrLaturi() si setLaturi() care au functionalitate comuna pentru intreaga ierarhie sI metodele abstracte list() si perimetru(). Din aceasta clasa extindem clasele Patrat si Dreptunghi.

public class Patrat extends Poligon

public void list()

public float perimetru()

}

public class Dreptunghi extends Poligon

public void list()

public float perimetru()

}

}i acum sa folosim ierarhia definita.

public class Prelucrare

;

Dreptunghi d=new Dreptunghi(a);

d.list();

plg=d;

System.out.println('Perimetrul este '+plg.perimetru());

float bas=;

Patrat p=new Patrat(b);

p.list();

plg=p;

System.out.println('Perimetrul este '+plg.perimetru());

}

}

Clasa abstracta Poligon nu poate fi direct instantiata. O variabila de tipul ei poate prelua valoarea unei instante a uneia dintre subclase.

O interfata se precizeaza cu cuvantul cheie interface si defineste un tip. Ea este un model pe care orice clasa care il implementeaza trebuie sa-l respecte intocmai. Metodele care apar intr-o interfata sunt implicit publice iar variabilele (daca sunt declarate) sunt constante chiar daca nu se specifica aceasta in mod explicit. Se pot crea ierarhii de interfete la fel ca in cazul claselor.

Ca si in cazul claselor abstracte se pot declara variabile de tipul unei interfete. Valoarea unei astfel de variabile poate fi orice referinta la un obiect care apartine unei clase ce implementeaza interfata. Variabilele de tip interfata abstractizeaza notiunea de obiect deoarece sunt independente de clasele care fac implementarea. Reluam exemplul anterior.

Exemplul 8

import java.io.*;

interface Poligon

class Patrat implements Poligon

catch(Exception e)

}

public Patrat(float aas)

public void list()

public float perimetru()

}

class Dreptunghi implements Poligon

catch(Exception e)

}

public Dreptunghi(float aas)

public void list()

public float perimetru()

}

public class Prelucrare

;

Patrat p=new Patrat(a);

p.list();

plg=p;

System.out.println(' cu perimetrul '+plg.perimetru());

float bas=;

Dreptunghi d=new Dreptunghi(b);

d.list();

plg=d;

System.out.println(' cu perimetrul '+plg.perimetru());

}

}



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 951
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved