English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Sobrecarga de constructores en enumeraciones de Java

SobrecargaEs un mecanismo para implementar polimorfismo, donde una clase contiene dos métodos con el mismo nombre y diferentes parámetros.

Cada vez que se llama a este método, el cuerpo del método se basará en la asociación de parámetros con la llamada al método.

Sobrecarga de constructores

Al igual que con los métodos, también puede sobrecargar los constructores, es decir, puede escribir múltiples constructores con diferentes parámetros.

Además, basado en los parámetros pasados durante la instanciación, se llamará al constructor correspondiente.

Ejemplo

public class Sample{
   public Sample(){
      System.out.println("Hello how are you");
   }
   public Sample(String data){
      System.out.println(data);
   }
   public static void main(String args[]){
      Sample obj = new Sample("Tutorialspoint");
   }
}

Resultado de salida

Tutorialspoint

Sobrecarga de métodos de construcción en la enumeración

Al igual que con los constructores comunes, también puede sobrecargar el constructor de la enumeración. Es decir, puede hacer que el constructor tenga diferentes parámetros.

Ejemplo

El siguiente programa Java muestra la sobrecarga de constructores en la enumeración.

import java.util.Arrays;
enum Student {
   Krishna("Krishna", "kasyap", "Bhagavatula"), Ravi("Ravi", "Kumar", "pyda"), Archana("Archana", "devraj", "mohonthy");
   private String firstName;
   private String lastName;
   private String middleName;
   private Student(String firstName, String lastName, String middlename){
      this.firstName = firstName;
      this.lastName = lastName;
      this.middleName = middleName;
   }
   private Student(String name) {
      this(name.split(" ")[0], name.split(" ")[1], name.split(" ")[2]);
   }
}
public class ConstructorOverloading{
   public static void main(String args[]) {
      Student stds[] = Student.values();
      System.out.println(Arrays.toString(stds));
   }
}

Resultado de salida

[Krishna, Ravi, Archana]
Te gustará también