Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Last active April 28, 2025 20:06
Show Gist options
  • Save thinkphp/302ebebdd45cce7cd31289ea9cf47fad to your computer and use it in GitHub Desktop.
Save thinkphp/302ebebdd45cce7cd31289ea9cf47fad to your computer and use it in GitHub Desktop.
Interfata Java
/*
În Java, o interfață este un tip de referință similar cu o clasă, dar care conține doar declarații de metode și constante,
fără implementare. Interfețele sunt folosite pentru a defini un "contract" pe care clasele care o implementează
trebuie să îl respecte.
*/
public class Main {
public static void main(String[] args) {
System.out.println("===== FORME GEOMETRICE =====");
FormaGeometrica cerc = new Cerc(5.0);
FormaGeometrica dreptunghi = new Dreptunghi(4.0, 6.0);
System.out.println("Cerc:");
System.out.println("Aria: " + cerc.calculeazaAria());
System.out.println("Perimetrul: " + cerc.calculeazaPerimetrul());
cerc.afiseazaDetalii();
System.out.println("\nDreptunghi:");
System.out.println("Aria: " + dreptunghi.calculeazaAria());
System.out.println("Perimetrul: " + dreptunghi.calculeazaPerimetrul());
dreptunghi.afiseazaDetalii();
}
}
// Definirea interfeței FormaGeometrica
interface FormaGeometrica {
// Metodă abstractă pentru calcularea ariei
double calculeazaAria();
// Metodă abstractă pentru calcularea perimetrului
double calculeazaPerimetrul();
// Metodă default (disponibilă din Java 8)
default void afiseazaDetalii() {
System.out.println("Aria: " + calculeazaAria());
System.out.println("Perimetrul: " + calculeazaPerimetrul());
}
}
// Implementarea interfeței pentru cerc
class Cerc implements FormaGeometrica {
private double raza;
public Cerc(double raza) {
this.raza = raza;
}
@Override
public double calculeazaAria() {
return Math.PI * raza * raza;
}
@Override
public double calculeazaPerimetrul() {
return 2 * Math.PI * raza;
}
}
// Implementarea interfeței pentru dreptunghi
class Dreptunghi implements FormaGeometrica {
private double lungime;
private double latime;
public Dreptunghi(double lungime, double latime) {
this.lungime = lungime;
this.latime = latime;
}
@Override
public double calculeazaAria() {
return lungime * latime;
}
@Override
public double calculeazaPerimetrul() {
return 2 * (lungime + latime);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment