例如有个  
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类型,这样是怎么回事呢?

解决方案 »

  1.   

    去看看java编程思想多态那章吧
      

  2.   

    问题就出来向上转型后的事件了:
    例: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()方法呢?