例如有个
interface Selector{
boolean end();
object current();
void next();
}
class SSelector implements Selector{
private int i=0;
.......
}
有个方法
public Selector getSelector(){return new SSelector();}
我就是想问向上转型同向上转型的细节问题!
好像这个Selector类的数据成员比较少,而SSelector类比较多,这样把SSelector的对象是Selector类型,这样是怎么回事呢?
interface Selector{
boolean end();
object current();
void next();
}
class SSelector implements Selector{
private int i=0;
.......
}
有个方法
public Selector getSelector(){return new SSelector();}
我就是想问向上转型同向上转型的细节问题!
好像这个Selector类的数据成员比较少,而SSelector类比较多,这样把SSelector的对象是Selector类型,这样是怎么回事呢?
例:class Shape{draw();erase()}
class Circle extends Shape {draw();erase()}
class Square extends Shape {draw();erase()}
class Triangle extends Shape {draw();erase()}向上转型可以用像下面这条语句这么简单:
Shape s = new Circle();
但用s.draw();的方法时是用那个方法呢?我向上转型那Circle对象的一些数据不是没有了,但他为什么又会知道是用Circle的draw()方法而不是用Shape的draw()方法呢?