码迷,mamicode.com
首页 > 编程语言 > 详细

静态方法 java 继承

时间:2014-11-28 22:41:49      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   sp   java   div   log   bs   as   new   

可以继承,例子:
class A{
 public static void a(){
  System.out.println("a");
 }
}
class B extends A{}

public class Test {
   public static void main(String[] args) {
         B.a();//输出a,证明静态方法可以被继承
   }
}

不能被覆写,例子:
class A{
 public static void a(){
  System.out.println("a");
 }
}
class B extends A{
 public static void a(){
  System.out.println("b");
 }
}

public class Test {
   public static void main(String[] args) {
    A a = new B();
    a.a();//输出结果是a
   }
}

java不推荐用对象调用static方法,这会使人混淆,请大家注意。

  

 

可以重写静态方法,但重写后的静态方法不支持多态。
本质是因为对静态方法在运行期只查找显式声明的类的内存,这就意味着不可能是多态。虚拟机的运行方式就是这样,就是语法规定而已,没什么好解释的,至于什么公共不公共简直是胡扯,说了没说一样

静态方法 java 继承

标签:blog   ar   sp   java   div   log   bs   as   new   

原文地址:http://www.cnblogs.com/chuiyuan/p/4129440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!