抽象类的确切用法是什么?

时间:2015-07-08 18:38:18

标签: java oop abstract-class

嗨朋友们,我仍然无法找到我们使用抽象类的原因 例如:

public abstract class Test{

   abstract void show();

}

class Demo extends Test{

   public void show(){
      System.out.println("hi");
   }

   public static void main(String a[]) {

       Demo obj = new  Demo();
       show();
       obj.show();
   }

}
  

而不是我可以直接使用

class Demo {

    void show(){
       sop("hi");
    }

    public static void main(String a[]){
       Demo obj = new  Demo();
       obj.show();
    }
}

抽象类在这里有什么用?如果可能的话,如何在没有抽象类的情况下使用覆盖概念?

2 个答案:

答案 0 :(得分:4)

如果多个类需要相同的功能,则应使用抽象类。由于抽象类可以包含方法实现,因此您可以实现一次并在(多个)其他类中继承它。这样可以避免代码重复并使其更易于维护。

也就是说,在Java 8中,您可以在接口中创建默认方法,这是可取的,因为类可以实现多个接口,但只能继承一次。此方法还可以避免使用problems的其他inheritance

答案 1 :(得分:2)

当我们可能不了解方法的工作方式和方法时,我们使用抽象方法,但我们确信一个类包含一个特定的方法,在那个实例中我们可以创建一个没有任何实现代码的抽象方法。稍后当我们扩展方法并了解方法必须如何工作时,我们可以根据当前对象或扩展类为其添加实现。