父类中的static方法不能被子类覆盖

    父类中的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方法
原文地址:https://www.cnblogs.com/fenglongyu/p/7390159.html