本帖最后由 付江涛 于 2014-7-17 16:28 编辑
在讲装饰和继承时,老师讲了一个MyReader的例子:
- MyReader//专门用于读取数据的类。
- |--MyTextReader
- |--MyBufferTextReader
- |--MyMediaReader
- |--MyBufferMediaReader
- |--MyDataReader
- |--MyBufferDataReader
复制代码 通过简单优化:
- class MyBufferReader
- {
- MyBufferReader(MyTextReader text)
- {}
- MyBufferReader(MyMediaReader media)
- {}
- }
复制代码 扩展性很差。找到其参数的共同类型。通过多态,可以提高扩展性:
- class MyBufferReader extends MyReader //就是搞不懂这为什么要继承MyReader
- {
- private MyReader r;
- MyBufferReader(MyReader r)
- {}
- }
复制代码
问题来了,MyBufferReader为什么要继承MyReader?如果不继承也没影响啊
而且上一课讲的PersonDemo例子中也没继承。
- class Person
- {
- public void chifan()
- {
- System.out.pritln("吃饭");
- }
- }
- class SuperPerson //没继承
- {
- private Person p;
- SuperPerson(Prson p)
- {
- this.p=p;
- }
- public void superChiFan()
- {
- System.out.println("开胃酒");
- p.chifan();
- System.out.println("甜点");
- }
- }
复制代码
搞不明白,为什么要继承
|
|