Was ist der Unterschied zwischen dem Importieren und Erweitern einer Klasse in Java?Was ist der Unterschied zwischen dem Importieren und Erweitern einer Klasse?
Antwort
Das sind zwei sehr unterschiedliche Dinge.
Durch den Import einer Klasse können Sie diese Klasse verwenden, ohne den vollständigen Namen in der aktuellen Klasse angeben zu müssen.
import java.util.Scanner
// now you can use the Scanner class in your code like so:
Scanner stdin = new Scanner(System.in);
// instead of having to do
java.util.Scanner stdin = new java.util.Scanner(System.in);
Durch das Erweitern einer Klasse wird eine neue Klasse erstellt, die eine Unterklasse einer anderen Klasse darstellt. Dadurch können Sie die Funktionalität der Klasse, die Sie erweitern, hinzufügen oder ändern.
// this is a very contrived example
public class EmptyList extends ArrayList {
@Override
public boolean add(Object o){
return false; // will not add things to a list
}
}
Kompiliert nicht, add muss wahr oder falsch zurückgeben! –
@Tim, warum wird es nicht kompilieren? Nur wegen des fehlenden Rückgabewerts? – jjnguy
... Tippfehler in booelan auch. –
Wenn in Ihrer Klasse, eine Klasse verweisen, die nicht im selben Paket wie die Klasse ist, müssen Sie Import die andere.
Wenn Sie oop inheritance verwenden möchten, Sie eine Klasse erweitern - das heißt Ihre Klasse die Funktionalität der Superklasse + was auch immer Ihre Schreib in Ihrer Klasse.
Die beiden Dinge sind ziemlich unterschiedlich, also sollten Sie vielleicht ein paar einfache Programme erstellen und den offensichtlichen Unterschied sehen.
Import ist eine optionale Klausel, die deklariert, welche Klasse Sie in Ihrer potentiellen Klassenschnittstelle oder Enumeration verwenden werden. Die Erweiterung sagt der Klasse, dass sie die Funktionalität dieser Elternklasse verwenden kann.
Um eine öffentliche Klasse zu erweitern, müssen Sie sie zuerst importieren.
Das ist fast völlig falsch. Sie können eine Klasse erweitern, ohne sie zu importieren. Sie können eine Klasse verwenden, ohne sie zu importieren, so dass Importe keine "Absichtserklärung" bilden. Und die Erweiterung hat viele Konsequenzen, die über die Zugriffsrechte hinausgehen, erlaubt nur einer Klasse den Zugriff auf "geschützte" Mitglieder des Elternteils und es ist in keinem Fall notwendig, die "öffentliche" Funktionalität des Elternteils zu verwenden. –
@Andrzej Doyle: Wir können sagen, dass es möglich ist, Klassen zu erweitern, die kein Import-Schlüsselwort verwenden, sondern den ganzen Pfad dazu hinzufügen. Sie sind wahr bei dieser "Absichtserklärung". In anderen Worten, wenn ich smtg so schreiben würde: "Um eine öffentliche Klasse der Klasse zu erweitern, sollten Sie sie importieren oder den vollständigen Pfad verwenden", das war eine unglaubliche Abkürzung. Ich passiere ;-). –
Importieren bedeutet, dass Sie nicht qualifiziert darauf verweisen können. z.B.
import java.util.List;
List list = ...
als
java.util.List list =
erstreckt sich völlig andere zu
Gegensatz sowie Mittel aus einer KlasseAusziehbarer
Ausfahrmittel Verbesserung der Funktionalität eines existierenden Verhalten und Struktur vererben Klasse. Importieren
Importieren bedeutet, dass Sie api als Hilfsmittel für Ihre Klasse zum Desingen verwenden.
Import ändert nicht Ihr Programm, es erlaubt Ihnen nur, die kurze Form der Deklaration einer Klasse zu schreiben. In Ihrer eigenen Klasse können Sie jede andere Klasse aus einem beliebigen Paket innerhalb der Java-Bibliothek verwenden.
Nehmen wir an, Sie möchten die Scanner-Klasse verwenden, um Eingaben von der Tastatur zu nehmen. Anstatt java.util.Scanner sc = new java.util.Scanner(System.in);
zu schreiben, können Sie einfach Scanner sc = new Scanner(System.in);
schreiben.
Wenn Sie das Paket oder ein Paket, gefolgt von dem Klassennamen an der Spitze der Klasse importieren, die importieren ist java.util.*;
oder i mport java.util.Scanner;
eine Klasse Erweiterung ist nicht so einfach wie eine Klasse importieren. Wenn Sie eine Klasse erweitern, fügen Sie alle Instanzen (Felder) und Methoden der erweiterten Klasse in Ihre eigene Klasse ein.Mit anderen Worten, Sie haben Zugriff auf alle Felder und Methoden der erweiterten Klasse.
Nicht private. (Warum beantworten Sie eine alte Frage, die bereits eine gute, akzeptierte Antwort hat?) –
vor allem ist der Import verwenden, um die Effizienz der Compiler zu erhöhen, um die richtige Klasse der Hauptunterschied zu finden, wird die Import Verwendung Aggregation (has-a) Konzept & in erweitert die wir verwenden (ist-a) Beziehung
in has-a oder importieren, das Obj unserer Klasse ist nicht eine lebenslange Beziehung mit Import-Klassen pflegen wir müssen das Obj der bestimmten Klasse, die wir in unserer Anwendung verwenden wollen, aber in erweitert das Obj unserer Klasse ist machen eine Lebenszeitbeziehung mit Elternklasse ... GLÜCKLICH, wenn ich Recht anders weise bin geben Sie richtig ans ....
das Importieren einer Klasse stellt uns zur Verfügung, um auf seine vordefinierten Methoden zuzugreifen. wir cn Ändern Sie diese Methoden nicht, aber wir können sie verwenden. Das Erweitern einer Klasse bedeutet, dass wir die in der zu vererbenden Klasse definierten Methoden überschreiben können.
Der Paket-Import ist nur eine Möglichkeit, dem Klassenlader mitzuteilen, wo er nach seinen Klassen suchen und auch zwischen Klassen mit demselben Namen unterscheiden muss. Class extend teilt JVM die hierarchische Beziehung zwischen Ihren Klassen mit. Sobald die Klasse gefunden wurde, gelten OO-Regeln.
- 1. Was ist der Unterschied zwischen dem Standard- und dem Standardkonstruktor?
- 2. Was ist der Unterschied zwischen Einschließen und Erweitern in Ruby?
- 3. In ember.js, was ist der Unterschied zwischen mischen und erweitern?
- 4. Was ist der Unterschied zwischen aufgeblähter Klasse und markierter Klasse?
- 5. Was ist der Unterschied zwischen dem neuen Operator und Class.newInstance()?
- 6. Was ist der Unterschied zwischen einem Mixin und dem Dekorationsmuster?
- 7. Was ist der Unterschied zwischen dem WebConfigurationManager und dem ConfigurationManager?
- 8. Was ist der Unterschied zwischen dem Betriebssystem und dem Kernel?
- 9. Was ist der Unterschied zwischen der Methode "mro" und dem Attribut "__mro__" einer Klasse?
- 10. Was ist der Unterschied zwischen Anwendungen erweitern und Aktivität in Android erweitern?
- 11. Was ist der Unterschied zwischen URL-Verbindung und Socket-Klasse?
- 12. Was ist der Unterschied zwischen Enum-Struktur und Enum-Klasse?
- 13. Was ist der Unterschied zwischen OnStart und dem App Constructor
- 14. Was ist der Unterschied zwischen `==` und `ist`?
- 15. Was ist der Unterschied zwischen Entity und Klasse?
- 16. Javascript: Was ist der Unterschied zwischen Funktion und Klasse
- 17. Was ist der Unterschied zwischen EntityReference und CrmEntityReference Klasse
- 18. Was ist der Unterschied zwischen -keep Klasse und -dontwarn
- 19. Was ist der Unterschied zwischen Struktur und Klasse
- 20. Was ist der Unterschied zwischen URI und Uri Klasse
- 21. Was ist der Unterschied zwischen Syncano Klasse und SyncanoDashboard?
- 22. Was ist der Unterschied zwischen Objekt einer abstrakten Klasse und Liste von Objekten der abstrakten Klasse?
- 23. Was ist der Unterschied zwischen einer Portnummer und einer Protokollnummer?
- 24. Was ist der Unterschied zwischen einer Subroutine und einer Funktion?
- 25. Was ist der Unterschied zwischen einer Eigenschaft und einer Instanzvariablen?
- 26. Was ist der Unterschied zwischen einer "nonce" und einer "GUID"?
- 27. Was ist der Unterschied zwischen einer HashMap und einer TreeMap?
- 28. Was ist der Unterschied zwischen einer Webreferenz und einer Servicereferenz?
- 29. Was ist der Unterschied zwischen:
- 30. Was ist der Unterschied zwischen dem [OptionalField] und [NonSerialized]
... oder meintest du "implementiert" vs "erweitert"? – Stroboskop