静态方法不能覆盖

1. 静态方法只与定义时所在的类相关,在编译期就已经绑定到某个类。可以继承,但不能在子类中被同名方法覆盖.
网上有一句话:类的引用指向子类时,当用到方法时,调用的是子类的对象.当用到属性时,用到的是父类对象.这个不适合静态方法.
代码测试如下:

public class Test1 {
final int var_final = 100;

void doit(){
     System.out.println(var_final);
}
    
static int myFunction(){
     return 500;
}
}

public     class Test2 extends Test1{
final int var_final = 200;
public Test2(){
         super();
    }
void doit(){
        System.out.println(var_final);
}

static int myFunction(){
     return 1000;
}
    
public static void main(String[] str){
    Test1 test = new Test2();
    System.out.println( "var_final = "+test.var_final);
    System.out.println( "myFunction = "+test.myFunction());
}
}
因为不管是静态方法,还是静态成员,他只属于这个类。类对像(Class)没有像实例一样的包容形式。只能各自调用各自的静态成员与方法。
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值