在没有任何抽象方法的情况下定义抽象类

Vis*_*ard 105 java methods inheritance class abstract

我可以在不添加抽象方法的情况下定义抽象类吗?

biz*_*lop 154

当然.

声明类抽象只意味着您不允许它自己实例化.

声明方法抽象意味着子类必须为该方法提供实现.

这两个是不同的概念,但显然你不能在非抽象类中使用抽象方法.你甚至可以使用final方法的抽象类,但从来没有相反的方法.


Mar*_*c W 15

是的,你可以做到.你为什么不尝试这样做?

  • @ karim79不需要高马和所有那些浇酱的东西.尝试它并不能完全揭示为什么它被允许,同时问它可能. (49认同)
  • 如果问题可以通过简单的是或否来回答,那么提问者应该考虑改写,使用谷歌,或者只是尝试一下. (8认同)
  • @bizclop - 为自己尝试可能会产生一个更有成效的问题.没有高马.这非常简单.他的问题是'我可以'而不是'为什么这样......'. (7认同)
  • 它不仅仅是OP.看看问题已经得到的所有赞成! (6认同)
  • @ karim79是的,这个问题本来可以更好地表达,但我想它不需要花费太多精力就能领先一步. (3认同)

Shr*_*ari 8

是的你可以.java中使用的抽象类表示您无法创建该类的对象.并且子类必须为该方法提供实现的抽象方法.

因此,您可以轻松定义抽象类,而无需任何抽象方法.

至于例子:

public abstract class AbstractClass{

    public String nonAbstractMethodOne(String param1,String param2){
        String param = param1 + param2;
        return param;
    }

    public static void nonAbstractMethodTwo(String param){
        System.out.println("Value of param is "+param);
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以.


Viv*_*ani 5

是的,我们可以有一个没有抽象方法的抽象类,因为两者都是独立的概念。声明一个类为抽象类意味着它不能自行实例化,只能被子类化。声明方法抽象意味着该方法将在子类中定义。


Jeg*_*ala 5

是您可以使用任何抽象方法创建抽象类没有抽象方法的抽象类的最佳示例是HttpServlet
抽象方法是一个没有主体的方法,如果您在类中声明了至少一个方法,则该类必须声明为如果您声明抽象类不是必须在类中声明抽象方法,那么它是强制性的.

您无法创建抽象类的对象,这意味着它无法实例化.