PG 2.10 Interfaces Flashcards
1
Q
Was sind Interfaces
A
-Zustandslose abstrakte Klassen (besitzt keine änderbaren Attribute => Attribute sind implizit immer public static final, wird aber weggelassen)
-wird durch interface anstatt class eingeleitet
public interface Drawable {
public abstract void draw();
}
2
Q
Interface Methoden
A
- sind immer ohne Körper, und public abstract oder private (Es ist bekannt was zu tun ist, aber nicht wie)
- public default Methoden sind immer konkret und können bei Bedarf überschrieben werden (Standardfunktionalität)
-gibt auch statische Methoden, die Hilfsfunktionen für Objekte bieten
3
Q
Konkrete Klasse implementiert Interface
A
public class Circle implements Drawable, Resizeable{
String farbe;
int durchmesser;
public Circle(String farbe, int durchmesser){ this.farbe = farbe; this.durchmesser = durchmesser; } public void draw(){ System.out.println("Der Kreis mit der Farbe " +farbe+ " und dem Durchmesser " +durchmesser+ " wird gemalt"); } public void resizeable(int größe){ durchmesser = größe; } }
- muss alle abstrakten Interface Methoden implementieren (wird eine methode nicht implementiert, dann muss die Klasse abstract sein)
-Klassen können beliebig viele Interfaces implementieren, aber nur von einer Oberklasse abgeleitet sein
4
Q
Interface im Klassendiagramm
A
- durch «interface» bezeichnet
- entweder gestrichelter Pfeil oder Lollipop Notation
5
Q
Sinn und Zweck von Interfaces?
A
- erlauben Mehrfachvererbung, Klassen nur Einfachvererbung
-fungieren als zustandslose, abstrakte Klassen an der Spitze einer Vererbungshierarchie
-definieren bestimmte Eigenschaften “quer” zu allen Vererbungshierarchien
6
Q
was ist ein funktionales interface?
A
- genau eine abstrakte Methode
- @FunctionalInterface-Annotation gibt an, dass dieses Interface ein funktionales Interface ist und daher nur eine abstrakte Methode enthalten sollte.