今天我在看孙卫琴写的JAVA面向对象编程的时候,他写到public static main(String[] args){}
可以在这个方法前用final修饰,因为static 修饰的方自动为final.但是他在后面讲继承的时候又讲到静态方法的覆盖,如果为常不是不能覆盖吗????我现在有点弄不明白了,请高手指点:
static修饰的方法是不自动为final?????????
可以在这个方法前用final修饰,因为static 修饰的方自动为final.但是他在后面讲继承的时候又讲到静态方法的覆盖,如果为常不是不能覆盖吗????我现在有点弄不明白了,请高手指点:
static修饰的方法是不自动为final?????????
解决方案 »
- javascript中调用java变量
- jsp找不着servlet的问题
- 关于显示主机上的文件问题?
- 本人在做一个图书管理系统不知道如何下手~~
- ResourceBundle的.properties文件应该放在哪里阿?
- 新手初学Java,写一段程序大家给评价一下,顺便测试一下你和你的他(她)有多配(不许扔砖头啊)
- POI问题
- 这个上传Bean有问题么?
- 如何显示 Class Loading process in status bar.
- 偶FT!我的JB怎么了?
- 小弟求救:我用lucene建立了一个全文检索的应用,客户要求在检索的过程中随时终止检索操作。请问,该如何实现?
- java程序总是接不到存储过程返回的结果集
除非你加了final,不存在说static 默认为final的说法
----------------------------
对,final修饰方法的时候不可以覆盖。
但是static方法不一定是final的啊
太不厚道~
穿5个裤衩了都不告诉我一声
孙位琴说的是对的~~
Thinging in java也有提到过
static 方法确实隐含的设置为final方法~~
如果方法设置为了static后,想在子类覆盖static方法,只是相当于在子类写了一个新方法,而不是覆盖给你们展示个例子(去掉static后,结果会不同)
class dd
{
public static void f()
{
System.out.println("sdfdsf");
}
}
public class df extends dd
{
public static void f()
{
System.out.println("abc");
}
public static void main(String[] args)
{
dd a=new df();
a.f();
}}
> 如果方法设置为了static后,想在子类覆盖static方法,
> 只是相当于在子类写了一个新方法,而不是覆盖哦~~ 原来是这样,受教了 :)看来是“隐含为 final”的说法造成了误解。如果真的是 final 的话,连“新方法”都不能定义的。
> 太不厚道~
> 穿5个裤衩了都不告诉我一声哈哈,我也刚注意到,估计是昨天升级的 :D
你也很快了吧?
那么我直接加上怎么不行
子类的方法会有出错提示...
不能重写该方法
前辈指点下了...