Latest web development tutorials

la herencia de Java

La herencia es una piedra angular de la tecnología Java de programación orientada a objetos, ya que permite la creación de clases de nivel jerárquico. La herencia puede ser entendida como un objeto para obtener las propiedades de otro objeto del proceso.

Si la clase padre es una clase Una clase B, clase B y clase C es la clase padre, y nosotros también llamada C es una subclase de A, Clase C de Clase A se hereda. En Java, la herencia de clases herencia simple, es decir, una subclase puede tener sólo una clase padre

Dos palabras clave más utilizada es la herencia se extiende e implementos.

Tanto el uso de palabras clave y determinar si un objeto es otro objeto SE-A ​​(a) relación.

Mediante el uso de estas dos palabras clave, podemos alcanzar un objeto para obtener las propiedades de otro objeto.

Todas las clases de Java son heredados por la clase java.lang.Object, por lo que la clase Object es el antepasado de todas las clases, y, además, objeto, todas las clases deben tener una clase padre.

Por un exceso de palabras clave se extiende puede declarar una clase hereda de otra clase, la forma general es la siguiente:

// A.java
public class A {
    private int i;
    protected int j;
 
    public void func() {
 
    }
}
 
// B.java
public class B extends A {
}

El anterior fragmento de código muestra, B hereda de A, B es una subclase de A. Y A es una subclase del objeto, no podrá ser declarado explícitamente.

Como una instancia de la subclase B de A tiene todas las variables miembro, pero para los miembros de la variable privada B, pero no tienen acceso, lo que garantiza la encapsulación de una.


ES-Una relación

Eso ES-A: Un objeto es una clasificación de otro objeto.

Aquí es la palabra clave se extiende la herencia de implementación.

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

Basado en el ejemplo anterior, la siguiente afirmación es cierta:

  • clase de animal es la clase de Mamíferos de la clase padre.
  • clase de animal es la clase de reptiles clase padre.
  • Mamíferos y reptiles clase es una subclase de la clase de animal.
  • clase de perro es tanto una subclase de la clase de mamíferos es una subclase de la clase de animal.

Análisis de IS-Una relación en el ejemplo anterior, como sigue:

  • Mamífero ES-A Animal
  • Reptil ES-A Animal
  • Perro IS-un mamífero

Por lo tanto: Perro IS-A Animal

Mediante el uso de la palabra clave se extiende, las subclases heredan todos los métodos de la clase dominante y de las propiedades, pero no pueden usar métodos particulares (privados) y propiedades.

Utilizamos el operador instanceof puede determinar mamífero es-un animal

Ejemplos

public class Dog extends Mammal{

   public static void main(String args[]){

      Animal a = new Animal();
      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

true
true
true

Después de la introducción de palabra clave extends, vamos a ver cómo utilizar la palabra clave implementos para indicar la relación es-un.

Implementa palabra clave en el caso de la interfaz de la herencia de clases, esta situación no se puede utilizar la palabra clave se extiende.

Ejemplos

public interface Animal {}

public class Mammal implements Animal{
}

public class Dog extends Mammal{
}

palabra clave instanceof

Usted puede utilizar el operador instanceof para comprobar si los Mamíferos y objeto perro es una instancia de la clase Animal.

interface Animal{}

class Mammal implements Animal{}

public class Dog extends Mammal{
   public static void main(String args[]){

      Mammal m = new Mammal();
      Dog d = new Dog();

      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);
   }
} 

Los ejemplos anteriores resultados compilados son los siguientes:

true
true
true

HAS-Una relación

HAS-A afiliación en nombre de la clase y sus miembros. Esto ayuda a reutilizar el código y reducir los errores de código.

ejemplo

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
	private Speed sp;
} 

Van clase y clase de velocidad es HAS-Una relación (Van tiene una velocidad), por lo que no tendrá todo el código se pega en la clase Van velocidad en la clase, y la clase de velocidad puede ser reutilizada en múltiples aplicaciones.

En características orientadas a objetos, el usuario no tiene que preocuparse acerca de cómo las clases internas.

detalles de implementación de clase van ocultas para el usuario, por lo que los usuarios sólo necesitan saber cómo llamar a la clase van a completar una función determinada, sin tener que saber la clase de Van es hacerlo por sí mismos o llamar a otra clase para hacer el trabajo.

Java soporta única herencia única, lo que significa que una clase no puede heredar de múltiples clases.

La siguiente práctica no es legal:

public class extends Animal, Mammal{} 

Java soporta única herencia única (la herencia y la clase base abstracta), pero podemos utilizar la interfaz para implementar (interfaces de herencia múltiple para lograr), la estructura de la escritura, tales como:

public class Apple extends Fruit implements Fruit1, Fruit2{}

En general, heredamos la clase base y clase abstracta con la palabra clave extends implementa la interfaz con la herencia implementa la clase de palabras clave.