Cuál es la diferencia entre importar y extender una clase en Java¿Cuál es la diferencia entre importar y extender una clase?
Respuesta
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
}
}
No compilará, agregue tiene que devolver verdadero o falso! –
@Tim, ¿por qué no compila? ¿Solo por el valor de retorno que falta? – jjnguy
... error tipográfico en booelan, también. –
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.
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.
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. –
@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 ;-) –
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
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.
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.
No privados. (¿Por qué responder una vieja pregunta como esta que ya tiene una buena respuesta aceptada?) –
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 ...
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.
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.
- 1. ¿Cuál es la diferencia entre incluir y extender en Ruby?
- 2. ¿cuál es la diferencia entre una clase y una biblioteca?
- 3. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 4. ¿Cuál es la diferencia entre extender una clase e incluirla en PHP?
- 5. ¿Cuál es la diferencia entre import java.util. *; e importar java.util.Date; ?
- 6. ¿Cuál es la diferencia entre extender la aplicación y ampliar la actividad en Android?
- 7. ¿Cuál es la diferencia entre una clase estática y una clase normal?
- 8. ¿Cuál es la diferencia entre una clase concreta y una clase abstracta?
- 9. iPhone SDK: ¿cuál es la diferencia entre #import y @class?
- 10. ¿Cuál es la diferencia entre "incluir módulo" y "extender módulo" en Ruby?
- 11. ¿Cuál es la diferencia entre {0} y ""?
- 12. ¿Cuál es la diferencia entre dict() y {}?
- 13. ¿Cuál es la diferencia entre .ToString (+) y ""
- 14. ¿Cuál es la diferencia entre ".equals" y "=="?
- 15. ¿Cuál es la diferencia entre _isEnabled y isEnabled en Anguila?
- 16. ¿Cuál es la diferencia entre " " y ""?
- 17. ¿cuál es la diferencia entre:.! y: r !?
- 18. Cuál es la diferencia entre = y: =
- 19. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 20. Cuál es la diferencia entre $ (...) y `...`
- 21. ¿Cuál es la diferencia entre + = y = +?
- 22. Cuál es la diferencia entre $ y jQuery
- 23. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 24. ¿Cuál es la diferencia entre Test t; y Prueba t() ;? Si la prueba es una clase
- 25. ¿Cuál es la diferencia entre una vista y una secuencia?
- 26. ¿Cuál es la diferencia entre una subrutina y una función?
- 27. ¿Cuál es la diferencia entre una sesión y una cookie?
- 28. Cacao: ¿Cuál es la diferencia entre importar en el encabezado e importar en el archivo principal?
- 29. ¿Cuál es la diferencia entre mixin() y extender() en las bibliotecas de Javascript
- 30. La concatenación de dos listas - diferencia entre '+ =' y extender()
... o quiso decir "implements" vs "extends"? – Stroboskop