It's not override. override in java supports dynamic binding.class A{
void f(){System.out.println("A");}
static void g(){System.out.println("A");}
}
class B extends A{
void f(){System.out.println("B");}
static void g(){System.out.println("A");}
}
public class Test{
public static void main(String[] args){
A a=new B();
a.f();
a.g();
}
}a.g() always binding to A.
void f(){System.out.println("A");}
static void g(){System.out.println("A");}
}
class B extends A{
void f(){System.out.println("B");}
static void g(){System.out.println("A");}
}
public class Test{
public static void main(String[] args){
A a=new B();
a.f();
a.g();
}
}a.g() always binding to A.
void f(){System.out.println("B");}
static void g(){System.out.println("B");}
}
static String fenghua(String name)
{
String x="Jiantao Lu";
return x;
}
public static void main(String args[])
{
test A=new test();
System.out.println(A.fenghua("man"));
}
}class testB {
static String fenghua(String name){
return name;
}
}
一个类(Class)就好比一个鞋模子,其成员就是这个类的属性,什么地方长,什么地方扁这些特性都是这个鞋模子的特性。所有由这个模子做出来的鞋子呢?就是这个类的实例(object/instance),这些object的特性由何处而来?就是这模子的特性决定了这些对象的特性。
而静态成员呢?也成为类成员。静态成员就好比是这个鞋模子上的一些附加的东西标签,比如说贴在模子上的标签。它只属于这模子。所有造出来的鞋会连标签也一同造出来吗?呵呵,当然不会。这点就可以理解类成员和实例成员的区别了。
下面,俺们来使用这例子来理解派生类的问题。派生类是什么?派生类也是一个新的模子,依据原来的鞋模子制造的,可能会修改了一些属性。
这里就很清楚了,新的模子同样也不会有原有鞋模的那个“标签”。呵呵,所以静态成员是不会被覆盖的。
:)