Abstrakte Klassen können durch Hinzufügen abstrakter Methoden erzwungen werden. Methoden können wie gewohnt erstellt werden ⇒ Durch Erben können Sie eine Unterklassenmethode zwangsweise anhängen. Mit anderen Worten, indem Sie der abgeleiteten Klasse dieselbe Methode geben und die Methode zwangsweise erstellen Sie können eine Klasse erstellen, die Ihnen Zwangskraft verleiht
Das Team hat eine gemeinsame Klasse namens A, die die Steuersatzmethode verwendet, die jeder verwendet. Die regionalen Steuern variieren von Region zu Region. Erstellen Sie daher eine Methode mit einzelnen abgeleiteten Klassen.
⇒ Eine Klasse, die eine Schnittstelle implementiert, kann in das Feld der Schnittstelle eingefügt werden. Mit anderen Worten, wenn die Schnittstelle implementiert ist, kann sie abhängig von den Bedingungen zwischen A und B umgeschaltet werden.
Probe (Schnittstelle)
public interface ControlPanelIf {
void play();
void pause();
void stop();
void forwardFast();
void backwordFast();
}
Die Klasse, die dies implementiert, ist der folgende Code.
Eigentlich ist es oft komplizierter, aber schreiben wir es als Beispiel.
public class DvdDeck implements ControlPanelIf {
@Override
public void play() {
System.out.println("DVD-Wiedergabe");
}
@Override
public void stop() {
System.out.println("DVD-Wiedergabestopp");
}
@Override
public void pause() {
System.out.println("DVD Pause");
}
@Override
public void forwardFast() {
System.out.println("DVD schneller Vorlauf");
}
@Override
public void backwardFast() {
System.out.println("DVD schnell zurückspulen");
}
}
Die Klasse, die diese DVDDeck-Klasse verwendet, lautet wie folgt.
public class DeckUser {
public static void main(String[] args) {
ControlPanelIf myDeck = createDeck(args[0]);
myDeck.play();
myDeck.forwardFast();
myDeck.pause();
myDeck.play();
myDeck.backwardFast();
}
private static ControlPanelIf createDeck(String deckType) {
ControlPanelIf deck;
if(deckType.equals("DVD") {
deck = new DvdDeck();
} else if(deckType.equals("BluRay") {
deck = new BluRayDeck();
} else if(deckType.equals("HDD") {
deck = new HddRayDeck();
} else {
deck = new DvdDeck();
}
return deck;
}
}
Referenzmaterial https://www.slideshare.net/graminmakeall/java-43178044?qid=6a49c149-fcb0-4aa8-87d0-2e4e2c18362b&v=&b=&from_search=5
Recommended Posts