黑马程序员技术交流社区
标题:
返回值类型为子父类问题!
[打印本页]
作者:
Laopozini123
时间:
2016-3-21 09:44
标题:
返回值类型为子父类问题!
class Demo4_Override {
public static void main(String[] args) {
}
}
class Person {
public void print() {
System.out.println("Person");
}
}
class Student extends Person {
public void print() {
System.out.println("Student");
}
}
class Father {
public Person method() {
return new Person();
}
}
class Son extends Father {
public Student method() {
return new Student();
}
}
上边是代码,father里面的方法返回值是person类型,下边son里方法返回值是student类型的。那么我想问,father里的返回值类型能不能设置成student的?son里的返回值类型能不能设置成person的?求大神帮助解答~
作者:
11210107
时间:
2016-3-21 13:09
本帖最后由 11210107 于 2016-3-21 16:15 编辑
Father类中的method方法返回是Person的一个实例,返回值类型必须是Person类或Person的父类类型,不能设置成Student,Son中的方法可以设置成Person类型的,(多态向上转型)
作者:
305450674
时间:
2016-3-21 13:27
因为Student继承了Person,所以返回值类型为Person的Father类可以接收Student对象,但是返回值类型为Student的Son类不可以接收Person对象。所以结论是,Son类中的method方法返回值类型可以设置成Person,Father类中的method方法返回值类型不可以设置成Student。
作者:
lijiy09
时间:
2016-3-21 15:35
Person类和Student类不是抽象类,Father类和Son类应该都可以返回它俩吧?
作者:
Laopozini123
时间:
2016-3-21 15:59
11210107 发表于 2016-3-21 13:09
Father类中的method方法返回是Person的一个实例,返回值类型必须是Person类或Person的父类类型,不能设置 ...
感谢~非常感谢~弄懂了一块~
作者:
lq229190730
时间:
2016-3-21 17:36
好多大神的样子
作者:
a8271275
时间:
2016-3-21 18:54
大兄弟加油,你是最棒的.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2