浏览 172 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2008-04-22
class A
{ int i=10; static void show() { System.out.println("show() in A"); } void show1() { System.out.println("show1() in A"); } } class B extends A { static int i=20; static void show() { System.out.println("show() in B "); } void show1() { System.out.println("show1() in B"); } } class TestStatic { public static void main(String[] args) { A aa=new B(); aa.show(); //1 aa.show1(); //2 } } 我想问的是:1:为什么静态方法只能够覆盖静态方法,非静态只能覆盖非静态方法?而成员变量却可以用静态覆盖非静态,非静态覆盖静态的? 2:当两个类为is-a的关系的时候,调用静态方法的时候,为什么1处和2处的结果和调用非静态的有所不同? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-04-22
静态方法还有做成继承的,还真没见过
我觉得可以这么理解:静态类或变量是跟着所属的类(就是Xxx.class文件)存在的,跟继承不继承的不相干。 |
|
| 返回顶楼 | |



