抽象类中的main方法有什么用途?

20

我知道我们可以在抽象类中编写主方法,但是我们能从中获得什么呢?

 public abstract class Sample
 {
         public static void main(String args[])
         {                        

            System.out.println("Abstract Class main method : ");

         }
 }

我们无法创建抽象类的对象,那么抽象类中的主方法有什么用?


7
这是一个静态方法,因此它属于类而不是实例。 - DarthVader
1
你的子类不需要实现main()方法。它们可以像已经创建了main方法一样运行。 - TheLostMind
4个回答

23

抽象类只是意味着你不能直接实例化该类。

加载一个类并不等同于创建该类的实例。而且没有必要创建该类的实例来调用main()方法,因为它是静态方法。所以没有问题。

抽象类只是意味着你不能直接实例化该类。如果需要子类初始化对象状态,则可以使用构造函数。您可以拥有静态方法,包括main(),它们不需要对象,因此可以正常调用它们。

所以只有在尝试创建对象时才会遇到错误,这时你就会遇到抽象限制。


8
您可以扩展抽象类,然后子类就有了一个main方法而不需要在那里指定一个。

1
不错的一行代码。而且,正如我在其他地方读到的那样,你可以在其中实例化其他具体类,这似乎是一个很好的用法。 - killjoy

2
public abstract class Abstrc
{
    Abstrc(){} // constructor
    public abstract void run(); // abstract method
    public static int mul(){return 3*2;} // static method
    public static void main(String[] args) 
    { // Static method that can be accessed without instantiation 
         System.out.println("Your abstract no is : " + Abstrc.mul());
    }
}

您的摘要编号为:6。

0

正如Zeeshan所说,由于main方法是静态的,因此不需要实例来调用。至于将主方法放置在抽象类中可以实现什么,那就和将其放置在任何其他类中一样,没有更多或更少的作用。

通常,main方法要么放置在自己的类中,要么放置在应用程序的核心类中。如果该类恰好是抽象的,那就这样吧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接