关于静态方法跟main()方法的继承跟重写问题?求大神解惑!

来源:9-1 Java 中的继承

wswzh0329

2015-10-05 21:57

静态方法和main()方法能继承和重写吗?看到问答区中有人说不能,但是自己上eclipse尝试的时候好像是可以的,可以看看下面的代码!

//父类A

package com.shiyan2;


public class A {

     public static void print(){                                             //想要被继承的静态方法

    System.out.println("执行了A类的pring方法!");

     }

     

     public static void main(String[] args) {              //想要被继承的main()方法

for(int i=0;i<args.length;i++){

System.out.println(args[i]);

}

System.out.println("调用了A类的main方法");

}

}

//子类B

package com.shiyan2;


public class B extends A {

       /*public static void print(){                                    //对print方法的重写

      System.out.println("父类中print方法的重写");

       }*/

       

      /* public static void main(String[] args) {           //对main()方法的重写

    for(int i=0;i<args.length;i++){

    System.out.println(args[i]);

    }

    System.out.println("调用了重写后的A类的main方法");

    }*/

}

//测试类

package com.shiyan2;


public class Initial {                                               

     public static void main(String[] args) {          

B b=new B();                                                      //实例化的是子类的对象

String str[]={"1","2","3","4"};

b.main(str);                                              //对main()方法的调用

b.print();                                                  //对print的调用

}

}

  //然后这个格式也很奇怪啊,main中还有main ,一个程序不是只能一个主路口吗?



写回答 关注

4回答

  • 天启之魂
    2015-10-06 10:52:43
    已采纳

    第一 你子B类的main方法并不是继承的A类的main方法 而是自己的main方法 所以也不存在重写的问题

    第二 测试类中的入口就是测试类中的main方法, 你在方法中调用别的类的重名方法不是很正常的事吗 ?不存在两个入口的问题,


    wswzh0...

    非常感谢!

    2015-10-18 19:53:04

    共 2 条回复 >

  • wswzh0329
    2015-10-18 19:55:16

    静态方法能够被继承,但是不能被重写,存在一模一样的静态方法只能说是把父类的方法给隐藏了,并不是被重写!!

    天启之魂 回复wswzh0...

    嗦嘎 那是我弄错了 不过确实没接触过这个概念

    2015-10-18 22:22:16

    共 5 条回复 >

  • 天启之魂
    2015-10-06 13:58:14

    我说错了 静态函数只能被静态函数覆盖,也就是重写!

  • 天启之魂
    2015-10-06 13:39:26

    静态函数只能被静态函数继承

    wswzh0...

    ..还是没明白。。继承不是类跟类之间的关系吗,被静态函数继承是什么意思? 我在eclipse上面试了,父类中有一个普通方法print和一个静态方法print2, 子类中什么都没写; 然后在测试类中创建了子类的对象,子类的对象能够调用print和print2,这是不是说明静态方法也能被继承?

    2015-10-06 13:51:16

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530562 学习 · 6091 问题

查看课程

相似问题