父类中的static方法可以以多态的形式在子类中重写,但是不能被覆盖,其实没有覆盖也就谈不上多态。
即使重写了,在向上转型调用子类重写的父类static方法时,调用的还是父类的static方法。
父类:
1 package cn.edu.chapter7_16;
2
3 class Amphibian {
4 String name;
5 public void play(){
6 System.out.println("play football");
7 }
8
9 static void set(String name){
10 System.out.println(name);
11 }
12
13 }
子类:
1 package cn.edu.chapter7_16;
2
3 class Frog2 extends Amphibian {
4 public void play(){
5 System.out.println("Frog palys football.");
6 }
7 static void set(String name){
8 System.out.println("my name is "+name);
9 }
10 }
主函数:
package cn.edu.chapter7_16;
public class Practice7_16 {
/**
* @param cena 2016/12/07
*/
public static void main(String[] args) {
// Amphibian a1=new Frog();
Amphibian a2=new Frog2();
// a1.play();
// a1.set("cena");
a2.play();
a2.set("cena");
}
}
运行结果:
Frog palys football.
cena //输出的是父类中的static方法