【问题标题】:What is the exact use of abstract class? [duplicate]抽象类的确切用途是什么? [复制]
【发布时间】:2023-04-01 11:06:02
【问题描述】:

各位朋友,我还是找不到我们使用抽象类的原因。
例如:

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();
    }
}

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

【问题讨论】:

标签: java oop abstract-class


【解决方案1】:

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

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

【讨论】:

  • 抽象类 - 就像任何类一样 - 允许添加额外的字段/状态;默认方法没有。
  • @user2864740 true - 但我从未遇到过必须使用抽象类的字段的情况。对我来说似乎是一个边缘案例。很好的评论 - 谢谢!
【解决方案2】:

当我们可能不知道方法的作用和用途但我们确定类包含特定方法时,我们会使用抽象方法,在这种情况下,我们可以创建一个抽象方法,而其中没有任何实现代码。之后当我们扩展方法并了解该方法必须如何工作时,我们可以根据当前对象或扩展类为其添加实现。

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 2020-04-26
    • 2012-09-03
    • 2012-07-04
    • 1970-01-01
    • 2014-06-24
    相关资源
    最近更新 更多