Java 军规 2-静态方法不能被重写

  在第一条军规中说过,重写方法必需添加@Override 注解,如果在不遵守第一条军规的前提下你是可以及时发下静态方法是不可以被重写的;而如果你没有遵守第一条军规时,你试图重写静态方法,此时在编译器是不可能发现该错误的。

   假设有这样一个基类

写道
public class Base {

public static void doSomething() {
System.out.println("我是父类的静态方法!Base.doSomething()");
}

public void toOther() {
System.out.println("Base doOther()");
}

public void doSomething(String thing) {
System.out.println("Base.doSomething(String thing)");
}

}

 在子类的代码如下:

写道
public class Sub extends Base {

public static void doSomething() {
System.out.println("我是子类的静态方法!Sub.doSomething()");
}

@Override
public void toOther() {
System.out.println("我是子类的非静态方法!");
}

}

我们在写一个测试方法

写道
public class Client {

public static void main(String[] args) {
Base base = new Sub();
base.doSomething();
base.toOther();

}

}

 结果是:

写道
我是父类的静态方法!Base.doSomething()
我是子类的非静态方法!

 

从结果上我们可以发现静态方法是不可以被重写的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈脩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值