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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM