父类中的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/qducn/p/6139977.html