父類中的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方法