Klasse = wie üblich, Interface = abstrakte Klasse, Struct (Record) = finale Klasse.
struct Bruch {
private int zähler;
private int nenner;
public Bruch (int z, int n) {
this.zähler = z; this.nenner = n;
}
}
Bei ordentlichem Entwurf (keine Implementierungsvererbung) reichen Interface und Struct.