楼主好像发错地方了,这里是java板块

解决方案 »

  1.   

    代码有一个错误,倒数第二行代码应为:
    graph = (Graph)rect;
      

  2.   

    abstract class Graph//自动作为基类
    {
       public Graph(){}
    }class Rectangle
    {
      Rectangle(){}
      void move(Size distanse){}
      void resize(Size size){}
    }
    class Line
    {
      Line(){}
      void move(Size distanse){}
      void resize(int length){}
    }
    class Ellips
    {
      Ellips(){}
      void move(Point p, Size distanse){}
      void resize(int radius){}
    }
    基类不能调用派生类的方法。
      

  3.   

    呵呵,你的代码当然可以。不过,对于resize,在graph类中,必须定义为abstract,否则,会调用graph的rersize,而不能正确的调用派生类的resize了。
      

  4.   

    谢谢各位的解答。
    关于多态与泛型的区别我的确有些混淆,第一贴与下面代码,都是多态的运用吗?
    class Line: Graph
    {
      Line(){}
      void resize(Size size);
      void resize(Point lt, Point rb)
    }
      

  5.   

    另外如果以Graph中我已经如下声明:
    abstract void resize(){}
    那么在子类中我是不是必须要加上override来声明参数不同的resize?
      

  6.   

    很多时候override不是必须的,但象你这样的abstract函数是要添加的。
      

  7.   

    最好先创建个基类,然后子类继承他,override必须的,所有的抽象属性和方法比须在子类里面实现
      

  8.   

    我试验了一下:
    abstract class Graph
    {
      Graph(){}
      abstract void move();
    }
    class Rectangle: 
    {
      Rectangle(){}
      void move(Size distanse){}
      void resize(Size size){}
    }
    这样是不行的,那么是否要把Graph.move声明为virtual?不管是抽象方法还是虚方法,派生类重载时都必须与基类中定义的原型相同,这样就不能达到我的要求。请指教!
      

  9.   

    我现在这么干了,达到了自己的要求,但觉得不是很好。
    class Graph
    {
      Graph(){}
      virtual void move(Size distanse){}
      virtual void move(Point p, Size distanse){}
      virtual void resize(Size size){}
      virtual void resize(int radius){}
    }
    class Rectangle
    {
      Rectangle(){}
      overide void move(Size distanse){}
      overide void resize(Size size){}
    }
    class Line
    {
      Line(){}
      overide void move(Size distanse){}
      overide void resize(int length){}
    }
    class Ellips
    {
      Ellips(){}
      overide void move(Point p, Size distanse){}
      overide void resize(int radius){}
    }
      

  10.   

    还没讲清楚呢,别急啊, liulangxin(流浪星)。
      

  11.   

    vs2003 没有泛型,vs2005才有!
    泛型,望文生义,泛:不确定,型:数据类型。即定义的数据是未确定的数据类型,编译时也不确定,运行时才按需指定。(个人理解,不知是否准确)