JAVA 多态的一种实现

今天一个同事问我一个问题,就是关于子类,父类之间方法的调用这里的。这里我整理了一个小DEMO。

代码如下:

父类的代码:

public abstract class ClassA {
    
    
    public final void execute()
    {
        System.out.println("A");
        work();
    }
    
    protected  abstract  void work();

}

这里,我个人理解,这里的execute()方法,好像用了设计模式中的命令模式。

 

子类代码:

public class ClassB extends ClassA {
     public void work()
     {
         System.out.println("B is working");
     }
     //方便期间,这里写了一个主方法
     public static void main(String[] args) {
        new ClassB().execute();
    }
}

NEW了一个B类,执行EXECUTE方法,其实这个是执行从父类继承来的,所有子类这个方法都是一样的。在EXECUTE方法中,会调用WORK方法,而这个方法就会调用本类中的具体实现。

 

本人JAVA学的不是很好,这种方法实现多态,感觉还是蛮有意思的。还用了设计模式。

调用者只需要知道执行execute方法,而不需要关心这个方法怎么实现的。可以通过反射机制,在运行时去执行。这样,大大的降低了模块间的耦合度。

 

今天又学到了一个。挺好!

 

2014.7.20

posted @ 2014-07-20 19:16  shenghaishiweini  阅读(151)  评论(0编辑  收藏  举报