能否利用面向对象的多态的概念,做一个模拟两个小朋友说话的简单程序:男同学说“Hello”,女同学说“World”。(也就是,输出 “Boy, to say: Hello")。主程序请简单依次生成对象,放进一个数据结构,然后简单循环完成行为;设计的重点应该放在类之间的关系和不同类的知识的分配。我们只是要求简单指示,文本输出;请不要在通讯细节或者对话回合上复杂化了。也不需要Proxy,InvocationHandler,Reflection 等手法。

解决方案 »

  1.   


    public class ChildTest {
    static abstract class Child{
       public abstract void say();
    }
    static class Boy extends Child{
       public void say(){
       System.out.println("Boy, to say:hello");
       }
    }
    static class Girl extends Child{
       public void say(){
       System.out.println("Girl, to say:world");
       }
    }
    public static void main(String[] args) throws Exception {
    List<Child> children = new ArrayList<Child>();
    children.add(new Boy());
    children.add(new Girl());
    for(Child c : children){
    c.say();
    }
    }
    }
      

  2.   

    LS说的对,不过建议楼主将静态内部类提出来,单独放到相应的.java中,这样便于理解。