abstract.java文件;public abstract class AbstractDisplay{
  public abstract void open();
  public abstract void print();
  public abstract void close();
  public final void display(){
    open();
    for(int i=0;i<5;i++){
      print();
    }
    close();
  }
}CharDisplay.java文件;public class CharDisplay extends AbstractDisplay{
  private char ch;
  public CharDisplay(char ch){
    this.ch=ch;
  }
  public void open(){
    System.out.print("<<");
  }
  public void print(){
    System.out.print(ch);
  }
  public void close(){
    System.out.print(">>");
  }
  
}StringDisplay.java文件;public class StringDisplay extends AbstractDisplay{
  private String string;
  private int width;
  public StringDisplay(String string){
    this.string=string;
    this.width=string.getBytes().length;
  }
  public void open(){
    printLine();
  }
  public void print(){
    System.out.println("|"+string+"|");
  }
  public void close(){
    printLine();
  }
  private void printLine(){
    System.out.print("+");
    for(int i=0;i<width;i++)
      System.out.print("-");
    System.out.println("+");
  }
}Main.java文件;public class Main{
  public static void main(String args[]){
  AbstractDisplay d=new CharDisplay("H");
  AbstractDisplay d2=new StringDisplay("Hello,world.");
  AbstractDisplay d3=new StringDisplay("你好");
  d.display();
  d2.display();
  d3.display();
  }
}运行javac Main.java 结果是 
找不到符号; 
符号:构造函数CharDisply()(java.lang.String) 
位置:类CharDisply 
AbstractDisplay d=new CharDisplay("H"); 错误在哪?

解决方案 »

  1.   

    public CharDisplay(char ch){ 该为:public CharDisplay(String ch){ 
      

  2.   

    我在上一个帖子就给说了这个问题了,结果你结贴到很快,"H"是一个String不是一个char
      

  3.   

    AbstractDisplay d=new CharDisplay("H"); "H"是String;
    你的参数是char;
      

  4.   

    谢谢huoyin 谢谢大家了 我还是基础不扎实啊
      

  5.   

    我把AbstractDisplay d=new CharDisplay("H"); 后面的括号里的""该成了'',运行成功