本帖最后由 z47057554 于 2015-3-8 05:04 编辑
有点明白你的意思了,你这两个例子的区别就是继承,和类中使用了到了某个类个类型的区别
class MyBufferedReader extends MyReader{}
MyBufferedReader 可以在拥有MyReader中所有的方法基础上,另外增加新的功能,并增加增强的功能(这一部分就是装饰),所以才叫装饰类
而class SuperPerson{}
首先,如果SuperPerson{}拥有Person中的全部功能,那就需要继承,不继承的后果就是你要自己重新写完与Person完全
一样的功能,再加上自己的功能。
其次,SuperPerson跟Person没有关系,只是类中使用到了Person对象,那你那段代码的意义下面一样
SuperPerson{
String name;
SuperPerson(String name){//我能因为只是使用了一个String对象就继承String类吗;我要是同时使用好些类型,那不挂了吗
}
}
另外感觉你对流对象有点理不清关系,举个例子:
BufferedReader bffr=BufferedReader(new FileReader("xxx.txt"));
BufferedReader接受过FileReader()后,对"xxx.txt"进行操作的是BufferedReader的字符流对象(注意它还是个流对象,它
需要有对字符流进行操作的方法),而不在是FileReader的对象,如果BufferedReader
不继承Reader的话,那么它要操作文件,必有自己定义方法来实现操作功能。
|