通过继承增强一个类的功能 代码结果清晰,通俗易懂 缺点:不灵活,导致继承体系过于庞大 但是:
装饰者设计模式:增强一个类的功能,还可以让这些类相互装饰
package com.day31;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
//BufferedWriter拓展了FileReader的功能
//编写一个类拓展BufferedReader的功能,增强readLine方法返回的方法带有字符串
class BufferedLineNum extends BufferedReader {
public BufferedLineNum(Reader in) {
super(in);
// TODO Auto-generated constructor stub
}
int count = 1; // 放到这里才不至于每次调用readLine()都给count重新赋值
public String readLine() throws IOException {
String line = super.readLine();
if(line==null){
return null;
}
line = count + " " + line;
count++;
return line;
}
}
public class demo {
public static void main(String[] args) throws IOException {
File file=new File("F:\\code\\users.txt");
FileReader filereader=new FileReader(file);
BufferedLineNum bufferedline=new BufferedLineNum(filereader);
String line=null;
while((line=bufferedline.readLine())!=null){
System.out.println(line);
}
}