请教一下.
抽象类到底什么时候用.有什么用?
abstract class fun1{
   abstract void method1();
   abstract void method2();
   …
}class fun2 extends fun1{
   public void method1(){
   ........
   }
}
抽象类只不过是不能NEW而已...但继承后的子类要把抽象类中的方法重写
class fun3{
   public void method1(){
   ........
   }
}
那和我直接写个普通的类然后去写这么个方法...有什么区别吗
麻烦了...

解决方案 »

  1.   

    interface IXXX{
     void handler();
    }
    abstract AXXX implements IXXX{
     void handler(){
       doAHandler();
     }
     abstract void doHandler();
    }
    class AIXXX extends AXXX{
     void doAHandler(){
       //doSomeThing
     }
    }
    abstract BXXX implements IXXX{
     void handler(){
       doBHandler();
     }
     abstract void doHandler();
    }
    class AIXXX extends AXXX{
     void doBHandler(){
       //doSomeThing
     }
    }
      

  2.   

    abstract class Person{
      abstract void method1();
      abstract void method2();
    }
    class Student extends Person{
      public void method1(){
        System.out.println("student");
      }
    }
    class Teacher extends Person{
      public void method1(){
        System.out.println("teacher");
      }
    }
    public class Test{
    public static void main(String args[]){
    Person p1= new Student();
    Person p2= new Teacher();
    doMethod(p1);
    doMethod(p2);}
    void method doMethod(Person person){//多态的好处不要写多个方法
    person.method1;
    }
    }