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();
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Interface im Klassendiagramm

A
  • durch «interface» bezeichnet
  • entweder gestrichelter Pfeil oder Lollipop Notation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly