首先要强调,静态方法是不能被覆盖的。
原因:
在子类中,可以定义与父类同名的静态方法,不过并不存在“多态”,严格的说,方法间没有多态就不能称作“覆盖”。所以说,子类的静态方法,并没有覆盖父类的方法。
package com.ren.staticTest;
public class StaticExtends {
public static void main(String[] args) {
Father son = new Son(); //声明为Father类,son1静态方法和Father类绑定
son.method();
son.staticMethod();
Son son2 = new Son();
son2.method();
son2.staticMethod();
}
}
class Father{
void method(){
System.out.println("父类方法");
}
static void staticMethod(){
System.out.println("父类静态方法");
}
}
class Son extends Father{
void method(){
System.out.println("子类方法");
}
static void staticMethod(){
System.out.println("子类静态方法");
}
}
运行结果:
子类方法
父类静态方法
子类方法
子类静态方法
本文得至:http://bbs.csdn.net/topics/110088704