3.以下哪两个方法可以加到three中
class one{
public one foo(){return this;}
} class two extends one{
public one foo(){return this;}
}
class three extends two{
//插入到这
}
---
A. public void foo(){}
B. public int foo(){return 1;}
C. public one foo(){return this;}
d. public two foo(){return this;}
e. public object foo(){return this;}
class one{
public one foo(){return this;}
} class two extends one{
public one foo(){return this;}
}
class three extends two{
//插入到这
}
---
A. public void foo(){}
B. public int foo(){return 1;}
C. public one foo(){return this;}
d. public two foo(){return this;}
e. public object foo(){return this;}
之前就遇到了这个问题,虽然说重写不能修改返回类型,重载必须有不同的参数表
但是这里从现象推原因,是不是由于一个子类对象也是一个父类对象可以由父类引用指向,所以当他返回two时我们也可以把他看成也返回了one,two必要是one,所以d是对的e不对
yun
中的one可以替换成two还是多态的一个特性.父类引用可以指向子类对象