2010-08-12 17 views

Respuesta

17

Esas son dos cosas muy diferentes.

Importar una clase, es hacerlo para que pueda usar esa clase sin necesidad de calificar el nombre completo en la clase actual que está escribiendo.

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

Extender una clase es crear una nueva clase que es una subclase de alguna otra clase. Esto le permitirá agregar o cambiar la funcionalidad de la clase que está ampliando.

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

No compilará, agregue tiene que devolver verdadero o falso! –

+0

@Tim, ¿por qué no compila? ¿Solo por el valor de retorno que falta? – jjnguy

+0

... error tipográfico en booelan, también. –

3

Cuando, en su clase, se hace referencia a una clase que no está en el mismo paquete que la clase, es necesario importación el otro.

Cuando se desea utilizar oop inheritance, que extender una clase - es decir, la clase tiene la funcionalidad de la superclase + Sea cual sea su escritura en su clase.

Las dos cosas son bastante diferentes, por lo que tal vez deberías crear algunos programas simples, y ver por ti mismo la diferencia obvia.

-3

Importar es una cláusula opcional que declara qué clase utilizará en su interfaz de clase potencial o enumeración. El anexo dice a la clase que puede usar la funcionalidad de esa clase principal.

Para extender una clase pública, primero debe importarla.

+0

Esto es casi completamente incorrecto. Puede extender una clase sin importarlo. Puede usar una clase sin importarla, por lo que las importaciones no forman una "declaración de intención". Y la extensión tiene muchas ramificaciones más allá de los derechos de acceso, solo permite que una clase acceda a miembros 'protegidos' del padre, y no es necesario utilizar la funcionalidad' pública' del padre en ningún caso. –

+0

@Andrzej Doyle: Podemos decir que es posible extender la clase sin utilizar la palabra clave de importación, pero agregar la ruta completa a ella. Usted es sincero acerca de esa "declaración de intención". en otras palabras, si escribí smtg de la siguiente manera: "Para extender una clase pública de clase, deberías importarlo o usar la ruta completa", fue un gran atajo para mi mente. Sucede ;-) –

3

La importación significa que puede hacer referencia a ella de una manera no calificada. p.ej.

import java.util.List; 

List list = ... 

en contraposición a

java.util.List list = 

Extendiendo es completamente diferente, y significa que hereda el comportamiento y la estructura de una clase

1

Extendiendo
medios que se extienden Mejora de las funciones de una existente clase. Importar
Importar significa usar alguna API como ayudante para su clase para el diseño.

4

Importar no cambia su programa, solo le permite escribir la forma abreviada de declarar una clase. En su propia clase puede usar cualquier otra clase de cualquier paquete dentro de la biblioteca de Java.
Digamos que quiere usar la clase de escáner para tomar entrada desde el teclado. En lugar de escribir java.util.Scanner sc = new java.util.Scanner(System.in);, simplemente escriba Scanner sc = new Scanner(System.in);.
Si importa el paquete o un paquete seguido del nombre de la clase en la parte superior de su clase que es importar java.util.*; oi mport java.util.Scanner;

La extensión de una clase no es tan simple como la importación de una clase. Cuando extiende una clase, está agregando todas las instancias (campos) y métodos de la clase extendida en su propia clase.En otras palabras, tiene acceso a todos los campos y métodos de la clase extendida.

+0

No privados. (¿Por qué responder una vieja pregunta como esta que ya tiene una buena respuesta aceptada?) –

1

en primer lugar, la importación es usar para aumentar la eficiencia del compilador para encontrar la clase correcta la principal diferencia, es la agregación uso de importación (ha-a) concepto & en extiende utilizamos (es-a) Relación
en has-a o import, el obj de nuestra clase no mantiene una relación de por vida con las clases de importación que necesitamos para obtener el obj de la clase particular que queremos usar en nuestra aplicación pero en extends el obj de nuestra clase es make una relación de por vida con la clase de padres ... FELIZ si estoy en lo cierto, de lo contrario, dar derecho ans ...

1

importar una clase nos permite acceder a sus métodos predefinidos.we cn No mencione esos métodos, pero podemos usarlos. extender una clase significa que podemos anular los métodos definidos en la clase para heredar.

0

La importación de paquetes es solo una forma de decirle al cargador de clases dónde buscar sus clases y también diferenciar entre clases con el mismo nombre. La extensión de clase le dice a JVM la relación jerárquica entre sus clases. Las reglas OO se aplican una vez que se encuentra la clase.

0

En simple:

de importación se refiere a tiene una relación. Con la palabra clave nuevo.

Extender se refiere a es una relación. Con palabra clave extiende.

Consulte el enlace this para ver un buen ejemplo.

+0

El enlace está muerto ... –

+0

Editado @KorayTugay :) – ram

Cuestiones relacionadas