Java 为什么扩展抽象类的类必须有main方法

Java 为什么扩展抽象类的类必须有main方法,java,Java,我试图访问扩展抽象类的类的add函数,该抽象类具有抽象add方法。请看下面的代码 public abstract class Ar { abstract int add(int a, int b); } public class Adder extends Ar { int add(int a,int b){ return a+b; } /*public static void main(Strin

我试图访问扩展抽象类的类的add函数,该抽象类具有抽象add方法。请看下面的代码

         public abstract class Ar {
       abstract int add(int a, int b);
      }


      public class Adder extends Ar {

     int add(int a,int b){
    return a+b;
     }

   /*public static void main(String[] args)
     {
        Adder a = new Adder();

      }*/
   } 

public class Sol {

    static void main(String atgs[])
   {
      Adder aa = new Adder();
      System.out.println(aa.getClass().getSuperclass().getSimpleName());
      System.out.println(aa.add(10, 10));
}
}
当我在加法器类中注释main方法声明时,我得到了一个错误:在类中找不到main方法,但是为什么我需要在加法器类中使用main方法呢


即使我不注释主方法,也没有得到空白输出。

< P>静态空格主键ATGs[] main必须是公共的,因为所有的类都有公共修饰符,确保您的类处于分离的文件中:

在SOL类中的main必须公开,否则编译器将不能使main开始执行。此外,如果您在Adder类中取消对main的注释,那么它将工作,但不会给出任何输出,因为它没有任何System.out.println语句

你可以试试这个

abstract class Ar {
       abstract int add(int a, int b);
      }


class Adder extends Ar {

     int add(int a,int b){
    return a+b;
     }

   public static void main(String[] args)
     {
        Adder a = new Adder();

      }
   } 

class Sol {

    public static void main(String atgs[])
   {
      Adder aa = new Adder();
      System.out.println(aa.getClass().getSuperclass().getSimpleName());
      System.out.println(aa.add(10, 10));
}
}
这里的输出将取决于类文件的执行

对于java Sol 输出- 应收账 二十


对于java加法器,ouput将为空。

这3个类在同一个文件中,您不需要。若要执行加法器,请尝试运行Sol。不,在扩展抽象类的类中定义main方法不是必须的。可能还有其他一些问题。此外,您可能正在尝试执行加法器。你必须执行Sol,你已经有72个代表点了,所以你现在肯定知道如何发布格式良好的代码了,对吧?您还知道,如果代码的格式良好,它就更容易理解,对吗?