好吧!我来给你举个我用到的抽象方法,不知楼主是否对GUI编程有熟悉。
GUI编程的时候通常有很多组件需要监听,而监听的时候需要一个个去写监听的动作,此时代码这样写非常的麻烦。
有一种思想,我每个组件都是实现同一个接口实现监听,在调用的时候我不知道究竟是谁产生动作,但是每个子类却实现了各自的监听动作。只要是实现了这个监听接口的所有子类,那么就可以调用该子类覆盖的方法,这样代码的冗余度就更高了。下面是一个简单的例子:- package com.itcast.itheima;
- public class AbstractTest {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- AbstractTest abs = new AbstractTest();
-
- abs.transfer(new ChildA());
- }
- //我怎么知道要使用哪个子类方法?可能我要ClassA,可能我要ClassB,如果没有抽象父类我岂不是需要写两个方法?
- //只要AbsSuper的某个子类一进来我就调用谁,我管你是哪个子类。这种思想称之为---多态,这样最直接看出抽象父类的使用,也称为面向抽象父类编程
- public void transfer(AbsSuper absSuper){
- absSuper.eat();
- }
- }
- abstract class AbsSuper{
-
- abstract public void eat();
-
- }
- class ChildA extends AbsSuper{
-
- @Override
- public void eat() {
- // TODO Auto-generated method stub
- System.out.println("Child-A");
- }
- }
- class ChildB extends AbsSuper{
-
- @Override
- public void eat() {
- // TODO Auto-generated method stub
- System.out.println("Child-B");
- }
- }
复制代码 |