gpt4 book ai didi

java - 多态性赋值语句

转载 作者:行者123 更新时间:2023-12-01 19:12:09 27 4
gpt4 key购买 nike

我对其赋值语句的多态性有疑问,例如这是 super 类

   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());
}
}

现在我的问题是这些赋值语句之间有什么区别?和有什么区别?我知道 Employee 是一个人,但我想知道这两者之间有什么区别:

 Person employee1 = new Employee();
Employee employee2 = new Employee();

还有这个

 Employee employeeKyle = new Employee();
Person employeeKyel2 = employeeKyle;

我对这些有点困难。

最佳答案

在第一个对象中,您有 2 个对象,两者都是 Employee 类型,并且对它们有 2 个不同的引用,一个是 Person 引用,另一个是 Employee 引用。

在第二种情况下,您有 1 个对象和 2 个指向它的引用,其中一个是 Person,另一个是 Employee。

该对象始终是您使用 new 关键字实例化的类型(在本例中,该对象始终是雇员)。但是,您可以有不同类型的引用指向实际对象(引用可以是对象的类型或其父类(super class)之一)。

关于java - 多态性赋值语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8031789/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com