java類中靜態方法不能重寫

在java中,靜態方法與非靜態方法不太一樣,靜態方法不能重寫。

class Parent {
 public static void print(){
    System.out.println("this is print in parent.");
 }
 public static void print(String s){
    System.out.println(s);
 }

 public void test(){
  System.out.println("hello");
 }

}

class Children extends Parent {
 public static void print(){
  System.out.println("this is print in children.");
 }

 public void test(){
  System.out.println("good");
 }
}

public class TestOverride
{
 public static void main(String[] args){
   Children c=new Children();
     //靜態方法不能重寫,下面調用的輸出結果不同,分別爲各自定義的方法
   c.print();//this is print in children.
   Parent p=new Children();
   p.print();//this is print in parent.

   //下面測試的是非靜態方法的覆蓋
   c.test();
   p.test();  //輸出結果相同,調用的都是子類重寫的方法
   
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章