本帖最后由 土突突 于 2014-4-19 23:49 编辑
你这句话肯定前边还有什么前提条件,否则的话这句话是不完全正确的
首先由static修饰的方法不可能默认都是final类型的,因为被final修饰的方法不能被重写,但是被static修饰的方法是可以被重写的,有实例为证:
- class Test
- {
- public static void main(String[] args)
- {
- new SonDemo().show();
- }
- }
- class Demo
- {
- public static void show()
- {
- System.out.println("父类方法运行了");
- }
- }
- class SonDemo extends Demo
- {
- public static void show()//重写了父类方法
- {
- System.out.println("子类方法运行了");
- }
- }
复制代码
运行结果如下:见下图
C:\Documents and Settings\Administrator\桌面\QQ截图20140419233800.png
被static修饰的方法只是限制了方法只能调用类中的静态成员变量和静态函数
其好处是和静态成员变量一样,随着类的加载而加载,可以直接用类名调用而无需建立对象。
另外在 “main() 方法前加上 final 修饰符是可以的”是正确的。因为一个程序只可能有一个main方法。所以main方法无需也不能被重写。所以加上final修饰符是可以的。但是也是没必要的。 |
|