ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Principios básicos de la herencia Java


Enviado por   •  27 de Diciembre de 2023  •  Tutorial  •  2.449 Palabras (10 Páginas)  •  69 Visitas

Página 1 de 10

Israel Lucas Torrijos        Java

Principios básicos de la herencia Java        2

1.        Preámbulo        2

2.        Principios fundamentales de herencia en java        2

2.1.        Ámbito o visibilidad        2

2.2.        Polimorfismo        3

2.3.        Casting o conversión de tipos        4

2.3.1.        Tipos de conversión: implícita y explícita        4

2.3.2.        Upcasting y downcasting        4

2.3.3.        Conversion de tipos primitivos        5

2.3.4.        Conversion de tipos referencias        5


Principios básicos de la herencia Java

  1. Preámbulo

[pic 1]

Un diagrama de árbol en Java detalla el orden de herencia de las clases, de arriba abajo, dentro del conjunto de clases que conforman el lenguaje.

En el gráfico superior la clase O se la denomina superclase respecto a las clases A, B y C. Al estar en la parte más alta del diagrama de árbol indica que todas las clases heredan de la clase O, y por lo tanto, son subclases de la clase O.

Es importante resaltar que una clase respecto de otra puede tener un orden de herencia distinto si establecemos una comparación con otra clase diferente dentro del mismo árbol de herencia. Esto quiere decir que una clase respecto de otra puede ser una superclase, pero si la comparamos con otra puede ser una subclase.

Por lo tanto, la relación de superclase y subclase es relativa y puede cambiar dependiendo de la perspectiva.

Ejemplo:

  • Las clases A y B son subclases de la superclase O, ya que heredan de ella.
  • La clase C es una subclase de la superclase B, al heredar de esta. Y también es una subclase de la superclase O, ya que están en la misma línea de herencia, al estar conectadas por la clase B.
  1. Principios fundamentales de herencia en java

  1. Ámbito o visibilidad

Dependiendo del orden que las clases tengan dentro de la misma línea de herencia, podrán tener acceso a las propiedades y métodos de otras clases.

En Java, una subclase tiene acceso a todas las propiedades y métodos definidas en sus superclases, si tuviera más de una. Por el contrario, una superclase no puede tener acceso a las propiedades y métodos definidos en sus subclases, si tuviera más de una.

Ejemplo:

  • La clase C puede acceder a las propiedades y métodos definidos en su superclase B. Y como la clase B hereda de la superclase O, también podrá acceder a los de ésta.
  • La superclase O no tiene acceso directo a las propiedades y métodos específicos de sus subclases A, B y C, ya que la herencia en Java opera en una dirección descendente.

  1. Polimorfismo

Recordemos que una variable polimórfica es aquella que puede almacenar objetos de diversos tipos (toda variable de objeto en Java es potencialmente polimórfica). De manera similar, las llamadas a métodos Java son polimórficas, porque pueden invocar diferentes métodos en distintos momentos.

Una instancia de una subclase (p.ej. new A())  podrá ser asignada a una referencia de cualquiera de sus superclases (O objetoClaseO). Ejemplo de declaraciones correctas:

O objetoClaseO = new A();

  objetoClaseO = new B();

  objetoClaseO = new C();

B objetoClaseB = new C();

En el ejemplo de arriba, las instancias de las subclases A, B y C pueden ser tratadas como instancias de la superclase O, en términos de polimorfismo, permitiendo un cierto grado de acceso a través de referencias de la superclase.

Sin embargo, teniendo encapsulado un objeto de la clase B en una referencia de la superclase O, la única manera de poder usar los métodos definidos en la clase B es realizando un downcasting implícito.

//Downcasting explicito. Es el casting de una superclase a una subclase  

//Partimos de una referencia de superclase que encapsula una instancia

  de su subclase

objetoClaseO = new B();

 

//Para poder usar métodos de la clase B hacemos downcasting explicito

//Modo 1

((B) objetoClaseO).metodoClaseB();

   

//Modo 2

objetoClaseB = (B) objetoClaseO;

objetoClaseB.metodoClaseB();

Una instancia de una superclase no puede ser asignado a un objeto de ninguna de sus subclases. Precisamente por el ámbito o visibilidad. Ejemplo de declaraciones incorrectas:

objetoClaseB = new O();           

objetoClaseC = new B();

Un ejemplo práctico:

public class Ejemplo_clase_DATE {

        public static void main(String[] args) {

                // Declaración de variables

                java.sql.Date fechaSQL = java.sql.Date.valueOf("2022-03-01");

                // Upcasting implícito

                java.util.Date fecha = fechaSQL;

                // Declaramos un objeto LocalDate

                LocalDate = LocalDate.now();

                // Comprobamos la instancia de la variable

                if (fecha instanceof java.sql.Date) {

...

Descargar como (para miembros actualizados) txt (11 Kb) pdf (155 Kb) docx (343 Kb)
Leer 9 páginas más »
Disponible sólo en Clubensayos.com