Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Anulación del método Java

Sustitución del método Java

En este tutorial, aprenderemos sobre la anulación de métodos en Java con la ayuda de ejemplos.

En el último tutorial, aprendimos sobre la herencia. La herencia es una propiedad OOP que nos permite derivar una nueva clase (subclase) de una clase existente (superclase). La subclase hereda los atributos y métodos de la superclase.

Ahora, si se define el mismo método tanto en la superclase como en la subclase, entonces el método de la clase de la subclase anula el método de la superclase. Esto se conoce como anulación de métodos.


Ejemplo 1:Anulación de método

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   @Override
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Salida :

I am a dog.

En el programa anterior, el displayInfo() El método está presente tanto en Animal superclase y el Perro subclase.

Cuando llamamos displayInfo() usando el d1 objeto (objeto de la subclase), el método dentro de la subclase Dog se llama. El displayInfo() El método de la subclase anula el mismo método de la superclase.

Note el uso del @Override anotación en nuestro ejemplo. En Java, las anotaciones son los metadatos que usamos para proporcionar información al compilador. Aquí, el @Override anotación especifica al compilador que el método después de esta anotación anula el método de la superclase.

No es obligatorio usar @Override . Sin embargo, cuando usamos esto, el método debe seguir todas las reglas de anulación. De lo contrario, el compilador generará un error.


Reglas de anulación de Java


palabra clave super en anulación de Java

Una pregunta común que surge al realizar la anulación en Java es:

¿Podemos acceder al método de la superclase después de la anulación?

Bueno, la respuesta es . Para acceder al método de la superclase desde la subclase, usamos el super palabra clave.

Ejemplo 2:uso de palabra clave super

class Animal {
   public void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      super.displayInfo();
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Salida :

I am an animal.
I am a dog.

En el ejemplo anterior, la subclase Perro anula el método displayInfo() de la superclase Animal .

Cuando llamamos al método displayInfo() usando el d1 objeto del Perro subclase, el método dentro del Dog se llama la subclase; el método dentro de la superclase no se llama.

Dentro de displayInfo() del Perro subclase, hemos usado super.displayInfo() llamar al displayInfo() de la superclase.


Es importante tener en cuenta que los constructores en Java no se heredan. Por lo tanto, no existe la anulación del constructor en Java.

Sin embargo, podemos llamar al constructor de la superclase desde sus subclases. Para eso, usamos super() . Para obtener más información, visite la palabra clave super de Java.


Especificadores de acceso en la anulación de métodos

El mismo método declarado en la superclase y sus subclases pueden tener diferentes especificadores de acceso. Sin embargo, hay una restricción.

Solo podemos usar esos especificadores de acceso en subclases que proporcionan un acceso mayor que el especificador de acceso de la superclase. Por ejemplo,

Supongamos, un método myClass() en la superclase se declara protected . Luego, el mismo método myClass() en la subclase puede ser public o protected , pero no private .

Ejemplo 3:Especificador de acceso en anulación

class Animal {
   protected void displayInfo() {
      System.out.println("I am an animal.");
   }
}

class Dog extends Animal {
   public void displayInfo() {
      System.out.println("I am a dog.");
   }
}

class Main {
   public static void main(String[] args) {
      Dog d1 = new Dog();
      d1.displayInfo();
   }
}

Salida :

I am a dog.

En el ejemplo anterior, la subclase Perro anula el método displayInfo() de la superclase Animal .

Cada vez que llamamos displayInfo() usando el d1 (objeto de la subclase), se llama al método dentro de la subclase.

Note que, el displayInfo() se declara protected en el Animal superclase. El mismo método tiene el public especificador de acceso en el Dog subclase. Esto es posible porque el public proporciona mayor acceso que el protected .


Anulación de métodos abstractos

En Java, las clases abstractas se crean para ser la superclase de otras clases. Y, si una clase contiene un método abstracto, es obligatorio anularlo.

Aprenderemos más sobre las clases abstractas y la anulación de métodos abstractos en tutoriales posteriores.


Java

  1. Operadores Java
  2. Prueba de Java con recursos
  3. Anotaciones Java
  4. Tipos de anotación de Java
  5. Método String Length () en Java:cómo encontrar con el ejemplo
  6. Método Java String indexOf() con subcadena y ejemplos
  7. Método Java String charAt() con ejemplo
  8. Método Java String compareTo():​​cómo usarlo con ejemplos
  9. Método Java String contains() | Comprobar subcadena con ejemplo
  10. Java String termina con () método con ejemplo
  11. Método Java String replace(), replaceAll() y replaceFirst()