typestar

Interfaces en Java

El contrato, más el comportamiento que el propio contrato puede traer.

Shape[] shapes = { new Circle(1.5), new Square(2) };
for (var shape : shapes) {
    System.out.printf("%.2f / %s%n", shape.area(), shape.label());
}

interface Shape {
    double area();

    // un método default entrega comportamiento junto con el contrato
    default String label() { return "a " + getClass().getSimpleName(); }
}

record Circle(double radius) implements Shape {
    public double area() { return Math.PI * radius * radius; }
}

record Square(double side) implements Shape {
    public double area() { return side * side; }
}

Cómo funciona

  1. interface Shape exige area; los records la implementan.
  2. Un método default le regala label a cada implementador.
  3. El arreglo de figuras despacha a cada implementación.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
520
Tokens
129
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 91 segundos.

Escribe este fragmento

Paso 4 de 4 en Clases y records; paso 21 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →

Interfaces en otros lenguajes