Constructor Overloading in Java
Constructor Overloading in java is allowing a class to have more than one constructor with each taking different parameters.
Example
public class Student { String name; int studentID; String gender; Student(String s,int id) { name=s; studentID=id; } Student(String s,String g,int id) { name=s; gender=g; studentID=id; } void showDetails() { System.out.println("Student name is " +name); System.out.println("Student ID is " +studentID); System.out.println("Student gender is " +gender); } public static void main(String args[]) { Student s =new Student("Eric Mutua",222221); s.showDetails(); Student s2=new Student("Jane Kate","Female",232222); s2.showDetails(); } }
Output:
Student name is Eric Mutua
Student ID is 222221
Student gender is null
Student name is Jane Kate
Student ID is 232222
Student gender is Female
BUILD SUCCESSFUL (total time: 0 seconds)
Java Copy Constructor
There are three ways of copying java object values into another java object.These are:-
- By constructor
- By assigning the values of one object into another
- By clone() method of Object class
Below example shows how to copy from one object to another using Java Constructor.
public class Student { String name; int studentID; Student(String s,int id) { name=s; studentID=id; } Student(Student s) { name=s.name; studentID=s.studentID; } void showDetails() { System.out.println("Student name is " +name); System.out.println("Student ID is " +studentID); } public static void main(String args[]) { Student s =new Student("Eric Mutua",222221); s.showDetails(); Student s2=new Student(s); s2.showDetails(); } }
Output
run:
Student name is Eric Mutua
Student ID is 222221
Student name is Eric Mutua
Student ID is 222221
BUILD SUCCESSFUL (total time: 0 seconds)
Copying values without constructor
Its possible to copy values of one object and assign them to another object
Example:
public class Student { String name; int studentID; Student(String s,int id) { name=s; studentID=id; } Student() { } void showDetails() { System.out.println("Student name is " +name); System.out.println("Student ID is " +studentID); } public static void main(String args[]) { Student s =new Student("Eric Mutua",222221); s.showDetails(); Student s2=new Student(); s2.name=s.name; s2.studentID=s.studentID; s2.showDetails(); } }