A lo largo de la UT interpretaremos diagramas de clase y los traduciremos en c贸digo java.

Persona es una clase base con atributos nombre, edad y el m茅todo hablar().Estudiante hereda de Persona y agrega su propio atributo matricula y el m茅todo estudiar().Persona <|-- Estudiante indica que Estudiante extiende a Persona.class Persona {
private String nombre;
private int edad;
public void hablar() {
System.out.println("Hola, soy una persona.");
}
}
class Estudiante extends Persona {
private String matricula;
public void estudiar() {
System.out.println("Estoy estudiando.");
}
}
public class Main {
public static void main(String[] args) {
Estudiante e = new Estudiante();
e.nombre = "Juan";
e.edad = 20;
e.matricula = "12345";
e.hablar();
e.estudiar();
}
}

Figura es una clase abstracta con el m茅todo abstracto dibujar(), lo que obliga a sus subclases a implementarlo.Circulo hereda de Figura e implementa dibujar().Figura <|-- Circulo indica herencia.abstract class Figura {
private String color;
public abstract void dibujar(); // M茅todo abstracto
}
class Circulo extends Figura {
private double radio;
@Override
public void dibujar() {
System.out.println("Dibujando un c铆rculo de radio " + radio);
}
}
public class Main {
public static void main(String[] args) {
Circulo c = new Circulo();
c.radio = 5.0;
c.color = "Rojo";
c.dibujar();
}
}

Notificable es una interfaz con el m茅todo enviarNotificacion(), que las clases que la implementen deben definir.Usuario implementa Notificable y define su propio comportamiento para enviarNotificacion().Usuario ..|> Notificable indica que Usuario implementa la interfaz.interface Notificable {
public void enviarNotificacion();
}
class Usuario implements Notificable {
private String nombre;
public void enviarNotificacion() {
System.out.println("Enviando notificaci贸n a " + nombre);
}
}
public class Main {
public static void main(String[] args) {
Usuario user = new Usuario();
user.nombre = "Carlos";
user.enviarNotificacion();
}
}