子类是父类, 父类不是子类,也就是说 book 是 item.你可以addItem(item), 自然也就能 addItem(book).所以,问题不是出在这上面。答案是:子类可以代替父类进行参数传递。

解决方案 »

  1.   

    Book mybook = new Book("computer programming", (float)50.10);
    改为Item mybook = new Book("computer programming", (float)50.10);
    就可以了。
    addItem(Item item)方法的参数是Item型,不是Book型。
      

  2.   

    以上方法都不行。 错误信息如下:
    error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: yyy.Book
    WHY?(编译正常通过)
      

  3.   

    是类没找到不是子类不能代替父类进行参数传递。
    有没有import?
      

  4.   

    这段程序没有错误啊,可能是其他地方引起的
    不信重写了这些代码并运行正确,请复制运行
    import java.util.*;class Item implements java.io.Serializable
    {
      public  String _title;
      public  float  _price;
      public Item(String title, float price)
      {
      _title = title;
      _price = price;
      }
      public String getTitle()
      {
      return _title;
      }
      public float getPrice()
      {
        return _price;
        }
    }class Book extends Item {  public Book(String title, float price)
      {
      super(title,price);
      }
    }
    public class Test {
      private Vector items = new Vector();
      public void addItem(Item item)  {
        System.out.println("additem ");
        items.addElement(item);   // £¨itemsΪvector)
      }
      public static void main (String args[]){
       Test cart=new Test();
    //    Item mybook = new Item("computer programming", (float)50.10);
    //    cart.addItem(mybook);//ÒÔϳÌÐòÊÇ´íÎóµÄ£º(±àÒëͨ¹ý£¬ÔËÐдíÎó£©
       Book mybook = new Book("computer programming", (float)50.10);
       cart.addItem(mybook);
      }
    }
      

  5.   

    以上程序我运行了一下,是对的。
    我把方法additem方法放在了一个有状态会话bean里面,结果不对。
      

  6.   

    你的那个错误信息最后的yyy.Book是什么意思?
    你还有其他类名为Book的么?
    同个目录下?