JAVA多態的實現方式

多態從實現的角度分爲:靜態多態和動態多態

      靜態多態也叫做編譯時多態

      動態多態也叫做運行時多態  

1.靜態的多態:

函數重載是靜態的多態的一種實現形式:

舉例說明:

class  MethodOverloading { 
     viod receive(int i) { 
        System.out.println("Received one int data"); 
         System.out.println("i="+i); 
     } 
      viod receive(float f) { 
         System.out.println("Received one float data"); 
          System.out.println("f="+f); 
     } 
     viod receive(String s) { 
          System.out.println("Received a String"); 
          System.out.println("s="+s); 
     } 
    } 

<pre>
方法重載是在編譯時就已經確定的,所以屬於靜態多態

2.動態的多態:

      子類覆蓋父類的方法,將子類的實例傳與父類的引用調用的是子類的方法;實現接口的實例傳與接口的引用調用的實現類的方法。   

舉例說明

例一:

public class A{

 public void fun1(){

    System.out.println("I'm A");
}


}

public class B extends A{

  public void fun1(){

    System.out.println("I'm A");
  }

}

public Test{

 public static void main(String[]args){

   A  a1 = new A();
   A  a2 = new B();
   a1.fun1();
   a2.fun1()

}

}

 

輸出:I'm A

            I'm B

例二:

public interface A{

 public void fun1(){}


}

public class B implements A{

  public void fun1(){

    System.out.println("I'm B");
  }

}
public class B implements A{

  public void fun1(){

    System.out.println("I'm C");
  }

}

public Test{

 public static void main(String[]args){

   A  a1 = new B();
   A  a2 = new C();
   a1.fun1();
   a2.fun1()

}

}


 

輸出:I'm B          

            I'm C


 

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