Java中枚举中的构造函数重载
重载是实现多态的一种机制,其中,一个类包含两个具有相同名称和不同参数的方法。
无论何时调用此方法,方法主体都将基于参数与方法调用绑定。
构造函数重载
与方法类似,您也可以重载构造函数,即,您可以编写多个带有不同参数的构造函数。
并且,基于实例化时传递的参数,将调用相应的构造函数。
示例
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");
}
}输出结果
Tutorialspoint
枚举中的构造方法重载
就像普通的构造函数一样,您也可以覆盖枚举的构造函数。即您可以使构造函数具有不同的参数。
示例
以下Java程序演示了枚举中的构造函数重载。
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));
}
}输出结果
[Krishna, Ravi, Archana]