2010-08-12 4 views

Antwort

17

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 
    } 
} 
+0

Kompiliert nicht, add muss wahr oder falsch zurückgeben! –

+0

@Tim, warum wird es nicht kompilieren? Nur wegen des fehlenden Rückgabewerts? – jjnguy

+0

... Tippfehler in booelan auch. –

3

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.

-3

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.

+0

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. –

+0

@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 ;-). –

3

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 Klasse

1

Ausziehbarer
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.

4

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.

+0

Nicht private. (Warum beantworten Sie eine alte Frage, die bereits eine gute, akzeptierte Antwort hat?) –

1

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 ....

1

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.

0

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.

0

In Einfach:

Import bezieht sich auf Hat eine Beziehung. Mit Schlüsselwort neu.

Extend bezieht sich auf ist eine Beziehung. Mit Schlüsselwort erweitert.

Bitte verweisen this Link für gutes Beispiel.

+0

Link ist tot ... –

+0

Bearbeitet @KorayTugay :) – ram

Verwandte Themen