4)对于不 满足需求的方法,重写父类的相关方法
装饰设计类
package cn.itcast.web.decorator;import java.io.BufferedReader;//将BufferedReader进行必包的包装/装饰public class MyBufferedReader { private BufferedReader br; private int no; public MyBufferedReader(BufferedReader br){ this.br = br; } //重写父对象的方法 public String readLine() throws Exception{ String line = null; line = br.readLine(); if(line!=null){ no++; line = no + ":" + line; } return line; } //真接使用父对象的方法 public void close() throws Exception{ br.close(); } }测试类:
package cn.itcast.web.test;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.Reader;import cn.itcast.web.decorator.MyBufferedReader;public class Test1 { public static void main(String[] args) throws Exception { Reader r = new FileReader(new File("d:\\abc.txt")); BufferedReader br = new BufferedReader(r); MyBufferedReader mbr = new MyBufferedReader(br); String line = null; while((line = mbr.readLine())!=null){ System.out.println(line); } mbr.close(); }}