class Book
{public char name[];    //定义属性
 public float price;
 Book(char i_name[],float i_price)    //构造函数
 {name=new char[i_name.length];
  System.arraycopy(i_name,0,name,0,i_name.length);
 price=i_price;
}
void showdata()      //显示数据
{System.out.println("书的名字是:"+name);
 System.out.println("书的价格是:"+price);
}
}
class Literature extends Book
{Literature(char i_name[],float i_price)
  {super(i_name,i_price);
   System.out.println("这是一本文学书");
  }
}
class Cartoon extends Book
{Cartoon(char i_name[],float i_price)
   {super(i_name,i_price);
    System.out.println("这是一本漫画书");
   }
}
public class qu
{
 public static void main(String args[])
{
 char str1[]={'J','a','n','e'};
 float a=20.0f;
Literature a_Literature=new Literature(str1,a);
 a_Literature.showdata();
 char str2[]={'S','l','a','m','D','u','n','k'};
 float b=18.5f;
 Cartoon b_Cartoon=new Cartoon(str2,b);
 b_Cartoon.showdata();
}
}
书名是英文呀

解决方案 »

  1.   

    老兄,我也是新手!在我的机子上。需要将你qu类前的public去掉才能编译通过,但不能运行!我也不知道原因,你用的是什么开发工具,在程序原代码中可以直接输入汉字来用吗?不好意思,请指教!
      

  2.   

    需要将你qu类前的public去掉才能编译通过,但不能运行!这应该是因为与你文将名同名的类不是public的原因,
    即保留public,修改文件名为qu.java罗
      

  3.   

    回残荷,我是用记事本编的,只需把文件名命名为*.java就行,所以源代码中可以有中文
    上面的源代码在我机子可以运行,不过书名位置输出的是乱码,有人让我把源代码中的相应位置改为
    void showdata() //显示数据 

    String name2 = new String(name); 
    System.out.println("书的名字是:"+name2); 
    System.out.println("书的价格是:"+price); 
    }
    问题得到解决,不过不知道为什么,请高手指点一二
      

  4.   

    你的作品在我这里能通过!显示正常~~~~
    我配置是WIN XP 2600英文版