Dieser Artikel teilt zwei klassische Verwendungen der Java -Schnittstelle als Referenz. Der spezifische Inhalt ist wie folgt
1. dynamisches Belastungsbeispiel für die polymorphe Java -Grenzfläche
Schreiben Sie ein allgemeines Programm, um die Zeit zu berechnen, die für Nichttransportfahrzeuge benötigt wird, um 1.000 Kilometer zu betreiben. Es ist bekannt, dass die Parameter jedes Transports 3 Ausdrücke von Ganzzahlen A, B und C sind. Es gibt zwei vorhandene Werkzeuge: Auto und Ebene, bei denen die Autokonversandel der Geschwindigkeitsberechnung lautet: a+b+c. Es gibt drei Klassen, die geschrieben werden müssen: computerTime.java, palne.java, car.java und interface Common.java. Es ist erforderlich, dass, wenn das dritte Transportfahrzeug in Zukunft hinzugefügt wird, keine früheren Verfahren geändert werden muss, aber es sind nur neue Verfahren zur Transportfahrzeug erforderlich. Der Betriebsprozess ist wie folgt:
Geben Sie die vier Parameter von computerTime aus der Befehlszeile ein. Der erste ist der Typ des Fahrzeugs, und die zweite, dritte und vierte Parameter sind die Ganzzahlen A, B und C als Beispiel:
Berechnen Sie die Zeit der Ebene: "Ebene 20 30 40"
Berechnen Sie die Zeit des Autos: "Auto 23 34 45"
Wenn das Fahrzeug auf dem dritten Platz Schiff ist, müssen Sie Ship.java und die Laufzeiteingabe schreiben: "Schiff 22 33 44"
TIPP: Verwenden Sie das Konzept der Schnittstellen vollständig, und Schnittstellenobjekte wirken als Parameter.
Eine andere Möglichkeit, ein Objekt zu instanziieren: class.forname (str) .Newinstance (); Zum Beispiel ist es notwendig, zu instanziieren
Rufen Sie für ein Flugzeugobjekt einfach class.forname ("Ebene"). NewInstance () auf.
Code:
1. computtime.java Bitte stellen Sie sicher
import Caltime.Vehicle.All.Common; Import Java .lang. "+args [2]); Class.forname ("caltime {System.out.println ("Klasse nicht gefunden");}}} 2.PLANE.JAVA
Paket Caltime.Vehicle; Caltime importieren
3. CAR.JAVA
Paket Caltime.Vehicle; import Caltime
4.Common.java
Paket Caltime.Vehicle.All; öffentliche Schnittstelle Common {Double Runimer (Double A, Double B, Double C);} Ein Run -Ergebnis:
C:/ java> Java computerTime Car 100 45 67
Transport: Auto
Parameter A: 100
Parameter B: 45
Parameter C: 67
Durchschnittsgeschwindigkeit: 67.16417910447761 km/h
Laufzeit: 14.88888888888889 Stunden
C:/ java> Java computerTime -Ebene 130 45 67
Transport: Flugzeug
Parameter A: 130
Parameter B: 45
Parameter C: 67
Durchschnittsgeschwindigkeit: 242,0 km/h
Laufzeit: 4.132231404958677 Stunden
Dieses Beispiel zeigt die klassische Verwendung von Schnittstellen, und das Denken in Java hat auch eine tiefgreifende Analyse dazu durchgeführt, sodass Sie es überprüfen können.
2. Die Schnittstelle wird als Parameter der Methode übergeben.
Beispiel:
interface Extendbroadable{public void inPut();}class KeyBroad implements Extendbroadable{public void inPut(){System.out.println("/n hi,keybroad has be input into then mainbroad!/n");}}class NetCardBroad implements Extendbroadable{public void inPut(){System.out.println("/n hi,netCardBroad has be input into then mainbroad!/n");}}class CheckBroad{public void getMainMessage(Extendbroadable ext){ext.inPut();}}public class InterfaceTest01{public static void main(String []args){KeyBroad kb=new KeyBroad();NetCardBroad ncb=new NetCardBroad();CheckBroad cb=new CheckBroad (); cb.getMainMessage (KB); CB.GetMainMessage (NCB); }} Parameter des Schnittstellentyps können als Methodenparameter verwendet werden. In der tatsächlichen Verwendung kann die Klasse, die die Schnittstelle implementiert, an die Methode übergeben werden, und die Methode kann nach dem Umschriebenprinzip ausgeführt werden. Der tatsächliche Anruf ist der Methodencode -Körper in der Implementierungsklasse. Auf diese Weise können verschiedene Funktionen gemäß den in übertragenen Parametern implementiert werden.
Wichtig ist, dass wir, wenn ich in Zukunft ein anderes Objekt brauche und meine eigene Methode -Körper habe, die ursprüngliche Klasse nicht umschreiben muss, nur eine neue Klasse, um die Schnittstelle zu implementieren.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.