Java中以下哪些赋值是合规则的?

假设现有4个类:Person、Teacher、Student和PhDStudent。Teacher 和Student都是Person的子类,PhDStudent是Student的子类。以下的赋值语句哪些是合法的,为什么?:
Person p1 = new Student();
Person p2 = new PhDStudent();
PhDStudent phd1 = new Student();
Teacher t1 = new Person();
Student s1 = new PhDStudent();
s1 = p1;
s1 = p2;
P1 = s1;
t1 = s1;
s1 = phd1;
Phd1 = s1;
我先给出我的答案:我认为合法的有1 2 5 6 7 8 11

PhDStudent phd1 = new Student();
Teacher t1 = new Person();
不合法,所以与t1和phd1有关的都不合法
s1 = p1;
s1 = p2;
P1 = s1;
也不对,对象相等需要强转且可以强转
温馨提示:答案为网友推荐,仅供参考
相似回答