java中static方法的继承性
生活随笔
收集整理的這篇文章主要介紹了
java中static方法的继承性
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先需要知道的是,java中所有的public實例方法都默認是virtual的,static方法不是virtual的,所以static方法可以被覆蓋(new),但不可被重寫(override)
1.被繼承
父類:
public class Parents{public static void staticFunction(){System.out.println("public static function of parents");}public void callPrintName(){this.printName();} }子類:
?
1 public class Child extends Parents{ 2 public static void main(String[] args){ 3 Child child=new Child(); 4 child.staticFunction(); 5 } 6 7 }輸出
public static function of parents說明static方法可以被繼承
?
2.被覆蓋(new)
父類:
public class Parents{public static void staticFunction(){System.out.println("public static function of parents");}public void callPrintName(){this.printName();} }子類:
public class Child extends Parents{public static void staticFunction(){System.out.println("public static function of Child");}public static void main(String[] args){Child child=new Child();child.staticFunction();}}?
輸出:
public static function of Child上面輸出是public static function of Child,說明static已經被覆蓋(new)了
3.不是virtual,即不能實重寫(override)
//父類 public class Parents{private void printName(){System.out.println("private function of parents");}public static void staticFunction(){System.out.println("public static function of parents");}public void callPrintName(){this.printName();} }//子類 public class Child extends Parents{public static void staticFunction(){System.out.println("public static function of Child");}public static void main(String[] args){Parents child=new Child();child.staticFunction();}}輸出:
public static function of parents?上面的child是屬于Child實例,用Parents引用,輸出的是public static function of parents,說明static方法不是virtual的,不能被重寫(override)。
轉載于:https://www.cnblogs.com/JMLiu/p/7515795.html
總結
以上是生活随笔為你收集整理的java中static方法的继承性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python之异常处理
- 下一篇: Node.js 把图片流送到客户端