У меня есть вопрос относительно полиморфизма относительно его оператора присваивания, например, это супер класс
public class Person {
private String firstName;
private String middleInitial;
private String lastName;
private int age;
public Person(String firstName,String middleInitial , String lastName , int age){
setFirstName(firstName);
setMiddleInitial(middleInitial);
setLastName(lastName);
setAge(age);
}
public void setFirstName(String firstName){
this.firstName = firstName;
}
public String getFirstName(){
return firstName;
}
public void setMiddleInitial(String middleInitial){
this.middleInitial = middleInitial;
}
public String getMiddleInitial(){
return middleInitial;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
public String getLastName(){
return lastName;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
public String toString(){
return String.format("First Name: "+getFirstName()+"\nMiddle Initial: "+getMiddleInitial()+
"\nLast Name: "+getLastName()+"\nAge: "+getAge());
}
}
А это Производный класс
public class Employee extends Person{
private Contact contact;
public Employee(String firstName,String middleInitial , String lastName , int age, Contact contact){
super(firstName,middleInitial,lastName,age);
this.contact = contact;
}
public String toString(){
return String.format(super.toString()+contact.toString());
}
}
Теперь мой вопрос: в чем разница между этими операторами присваивания? а в чем разница? Я знаю, что Сотрудник - это Человек, но я хочу знать, в чем разница между этими двумя:
Person employee1 = new Employee();
Employee employee2 = new Employee();
и This
Employee employeeKyle = new Employee();
Person employeeKyel2 = employeeKyle;
Я вроде как переживаю из-за этого.