A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 凝聚 中级黑马   /  2013-10-23 09:41  /  1382 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 凝聚 于 2013-10-23 10:44 编辑

package Nineteen;
import java.io.*;
public class eight {
        public static void main(String[] args)throws IOException
        {
        FileReader fr=new FileReader("my.doc");
        MyBufferedReader1 mybr=new MyBufferedReader1(fr);
        String line=null;
        while((line=mybr.myReadLine())!=null)
        {
                System.out.println(line);
        }
        mybr.myClose1();
        }

}
class MyBufferedReader1 extends Reader
{
         private Reader r;//FileReader去掉File装饰一组对象(Reader)
         MyBufferedReader1(Reader r)
         {
                 this.r=r;
         }
         public String myReadLine()throws IOException
         {
                 StringBuilder sb=new StringBuilder();
                 int ch=0;
                 while((ch=r.read())!=-1)
                 {
                         if(ch=='\r')
                                 continue;
                                 if (ch=='\n')
                return        sb.toString();
                         else
                                 sb.append((char)ch);
                 }
                 
                 if(sb.length()!=0)
                         return sb.toString();/*abc0,abc1,abc2,abc3,abc4如果没有这句话abc0,abc1,abc2,abc3*/
                 
                 return null;
         }
         /*覆盖Reader类中的抽象方法*/
         public void myClose1()throws IOException
         {
                 r.close();
         }
         
         public int read(char[] ch,int off,int len)throws IOException
         {
                 return r.read(ch,off,len);
         }
         
        
         /*
         public void close()throws IOException
         {
                 r.close();
         }
         */
}


这段代码中class MyBufferedReader1 extends Reader这句话标有红线,但调试能通过。是怎么回事。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
The type MyBufferedReader1 must implement the inherited abstract method Reader.close()
MyBufferedReader1类必须实现继承的抽象方法 Reader.close()

看过你代码,你的close()方法 被你自定义了myClose1(),,这是不对的,而应该沿用父类的方法名。

修改后的代码如下:
  1. package Nineteen;
  2. import java.io.*;
  3. public class eight {
  4.         public static void main(String[] args)throws IOException
  5.         {
  6.         FileReader fr=new FileReader("my.doc");
  7.         MyBufferedReader1 mybr=new MyBufferedReader1(fr);
  8.         String line=null;
  9.         while((line=mybr.myReadLine())!=null)
  10.         {
  11.                 System.out.println(line);
  12.         }
  13.         mybr.close();
  14.         }

  15. }
  16. class MyBufferedReader1 extends Reader
  17. {
  18.          private Reader r;//FileReader去掉File装饰一组对象(Reader)
  19.          MyBufferedReader1(Reader r)
  20.          {
  21.                  this.r=r;
  22.          }
  23.          public String myReadLine()throws IOException
  24.          {
  25.                  StringBuilder sb=new StringBuilder();
  26.                  int ch=0;
  27.                  while((ch=r.read())!=-1)
  28.                  {
  29.                          if(ch=='\r')
  30.                                  continue;
  31.                                  if (ch=='\n')
  32.                 return        sb.toString();
  33.                          else
  34.                                  sb.append((char)ch);
  35.                  }
  36.                  
  37.                  if(sb.length()!=0)
  38.                          return sb.toString();/*abc0,abc1,abc2,abc3,abc4如果没有这句话abc0,abc1,abc2,abc3*/
  39.                  
  40.                  return null;
  41.          }
  42.          /*覆盖Reader类中的抽象方法*/
  43.          public void close()throws IOException
  44.          {
  45.                  r.close();
  46.          }
  47.          
  48.          public int read(char[] ch,int off,int len)throws IOException
  49.          {
  50.                  return r.read(ch,off,len);
  51.          }
  52.          
  53.       
  54.          /*
  55.          public void close()throws IOException
  56.          {
  57.                  r.close();
  58.          }
  59.          */
  60. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马