Superclases y subclases:
La herencia le permite definir una clase general (es decir, una superclase) y luego extenderla a clases mas especializadas (es decir, subclases).
Se utiliza una clase para modelar objetos del mismo tipo. Las diferentes clases pueden tener algunas propiedades y comportamientos comunes, que pueden generalizarse en una clase que otras clases pueden compartir. Se puede definir una clase especializada que amplié la clase generalizada. Las clases especializadas heredan las propiedades y métodos de la clase general.
Usando la super palabra clave:
La super palabra clave se refiere a la superclase y se puede usar para invocar la superclase métodos y constructores.
Llamada a la superclase de constructores:
Un constructor se utiliza para construir una instancia de una clase. A diferencia de las propiedades y métodos, los constructores de una superclase no son heredados por una subclase. Solo se pueden invocar desde los constructores de las subclases usando la super palabra clave.
La sintaxis para llamar al constructor de una super clase es:
super(), or super(parameters);
Encadenamiento de constructores:
Un constructor puede invocar a un constructor sobrecargado o su constructor de superclase. Si ninguno se invoca explicitamente, el compilador coloca automáticamente super() como la primera instrucción en el constructor.
Métodos de Anulación:
Para anular un método, el método debe definirse en la subclase utilizando la misma firma y el mismo tipo de retorno que en su superclase.
Una subclase hereda métodos de una superclase. A veces es necesario que la subclase modifique la implementacion de un método definido en la superclase. Esto se conoce como anulación de método.
Anulación vs sobrecargar:
Sobrecargar significa definir múltiples métodos con el mismo nombre pero con firmas diferentes.
Anular significa proporcionar una nueva implementacion para un método en la subclase.
- Los métodos anulados están en diferentes clases relacionadas por herencia; métodos sobrecargados puede estar en la misma clase o en diferentes clases relacionadas por herencia.
- Los métodos anulados tienen la misma firma y tipo de retorno; métodos sobrecargados tienen el mismo nombre pero una lista de parámetros diferente.
Polimorfismo:
Polimorfismo significa que una variable de un supertipo puede referirse a un objeto de subtipo.
Subtipo y supertipo:
Una clase define un tipo. El tipo definido por una subclase se llama subtipo, y un tipo definido por su superclase se llama un supertipo.
Enlace Dinámico:
Se puede implementar un método en varias clases a lo largo de la cadena de herencia. La JVM decide que método se invoca en tiempo de ejecución. Un método puede definirse en una superclase y anularse en su subclase.
Fundición de objetos y el operador instanceof:
Una referencia de objeto se puede convertir en otra referencia de objeto. Esto se llama fundición de objeto.
Asignar el objeto new Estudiante() a un parametro del tipo objeto, se realiza de la siguiente manera:
object o = new Student(); // Implicit casting
m(o);
La clase lista de arreglos:
Un objeto ArrayList se puede usar para almacenar una lista de objetos. Puede crear un arreglo para almacenar objetos, pero, una vez que se crea el arreglo, su tamaño es fijo.
Java proporciona la clase ArrayList, que se puede usar para almacenar un numero ilimitado de objetos.
Sintaxis:
ArrayList<int> list = new ArrayList<>();
ArrayList<Integer> list = new ArrayList<>();
- El tamaño de una ArrayList es flexible, por lo que no tiene que especificar su tamaño en avanzar. Al crear un arreglo, se debe especificar su tamaño.
- El ArrayList contiene muchos métodos útiles. Por ejemplo, se puede probar si un elemento esta en la lista usando el método contiene. Si usa un arreglo, tienes que escribir código adicional para implementar este método.
Usar métodos para listas:
Java proporciona los métodos para crear una lista a partir de un arreglo, para ordenar la lista y encontrar elementos máximos y mínimos en la lista, y barajarla.
A menudo se necesita crear una lista de arreglos a partir de un arreglo de objetos o viceversa. Se puede escribir el código usando un bucle para lograr esto, pero una manera fácil es usar los métodos en la API de java.
Aquí se da un ejemplo:
String[] array = {"red", "green", "blue"};
ArrayList<String> list = new ArrayList<>(Arrays.asList(array));
Protección de información y métodos:
Se puede acceder a un miembro protegido de una clase desde una subclase. Hasta ahora se han utilizado las clases publicas y privadas para especificar si los campos de datos y si se pueden acceder a los métodos desde fuera de la clase.
Solo se puede acceder a miembros privados desde el interior de la clase, y se puede acceder a los miembros públicos desde cualquier otra clase.
Comments
Post a Comment