参考答案:
(1)abstract
(2)null
(3)List
(4)childList
(5)printTree(file)
详细解析:
本题考查基本面向对象设计中设计模式的运用能力。
组合设计模式主要是表达整体和部分的关系,并且对整体和部分对象的使用无差别。题目中AbstractFile是File类和Folder类的父类,它抽象了两个类的共有属性和行为,在后续main方法的使用中,不论是File对象还是Folder对象,都可被当作AbstractFile对象来使用。另外,由于Folder对象可以聚合其他的Folder对象和File对象,等价于Folder对象可以聚合另一个AbslractFile对象。
题目中AbstractFile类应该为抽象类,因此其修饰符应该包括abstract,空(2)处返回File类对象的孩子,但File类对象没有孩子节点,因此其返回值应该为NULL。getChildren方法是继承自抽象父类AbstractFile,所以其返回类型应该和父类的定义保持一致,空(4)处返回存储孩子节点的集合对象childList。该程序的运行能够打印出文件目录树,因此空(5)处应该为打印方法的调用。