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

时间:2015-11-29 03:36:10

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

当我在Adder类中注释主要方法声明时,我收到错误“错误:在课堂上找不到主要方法”,但为什么我需要在Adder类中使用main方法?

即使我取消对主要方法的评论,也没有得到空白输出。

2 个答案:

答案 0 :(得分:2)

static void main(String atgs[]) main必须为public,因为您的所有课程都有public修饰符,请确保您的课程处于单独的文件中

答案 1 :(得分:0)

Sol类中的

main()必须是公共的,否则编译器将无法使main()开始执行。此外,如果您取消注释Adder类中的main(),那么它将起作用,但不会提供任何输出,因为它没有任何System.out.println()语句。

你可以试试这个

Console.WriteLine(cards[1]);

此处输出将取决于类文件的执行

对于java Sol 输出 - 氩 20

对于java Adder,输出将为空白。