多態性的表現形式


1.什么是多態

   面向對象的多態性就是將父類對象應用到子類對象的特征。簡單地講,多態指的就是在應用程序中出現的“重名”現象。多態性允許以統一的風格編寫程序,以處理種類繁多的已存在的類和相關類。這樣既降低了維護的難度,又節省了時間。

2.在java語言中,多態性體現在哪些方面

  1. 方法重載:    通常是指在同一個類中,相同的方法名對應着不同的方法實現,這些方法名相同的方法其區別在於他們需要的參數不同。即采用不同的方法形參表,區分重載方法要求形參在數據類型、個數和順序的不同。(見實例2.1)
  2. 方法重寫:    方法重寫主要用於父類和子類間。子類重寫父類的方法,只是對應的方法實現不同,其方法名和參數都相同。(見實例2.2)
  3. 抽象類:       在java語言中,一個類中的方法只給出了標准,而沒有給出具體的實現方法,這樣的類就是抽象類。例如父類就是抽象類,它不會被實例化的類。
  4. 接口:          在多態機制中,接口比抽象類使用起來更加方便。而抽象類組成的集合就是接口

實例2.1    該類中聲明了兩個show方法,但是兩個方法的形式參數是不同,所以說第二個show方法重載了第一個show方法

 1 /* 定義類TestPolymorphisml*/
 2 public class TestPolymorphisml {
 3 
 4     String s="這是方法重載的實例";
 5     String ss="這是一個TestPolymorphisml類";
 6     public void show(){
 7          System.out.println("我是show方法"+ss);
 8     }
 9     public void show( String str){     //這個方法就是對上一個show方法的重載,方法名相同,只是他們需要的形參不一樣
10          System.out.println("我重載了show方法"+str);
11     }
12     public static void main(String[] args) {
13         TestPolymorphisml test = new TestPolymorphisml();
14         test.show(); //對象調用第一個show方法
15         test.show(test.s);  //調用重載的show方法
16     }
17 }

運行結果:

實例2.2 先新建一個A類,再建一個類繼承A類,在子類中對父類的屬性和方法進行重寫

1 /*定義A類*/
2 public class A {
3     String a="我是A類";
4     public void showA(){
5         System.out.println(a);
6     }
7 }
 1 /*定義類TestPolymorphism2  讓它繼承A類*/
 2 public class TestPolymorphism2 extends A{
 3     String b="我是重寫方法"; //這是對父類的a屬性的重寫
 4      public void showA(){  //這是對父類showA方法的重寫
 5             super.showA(); //使用關鍵字super調用父類的showA方法
 6             System.out.println(b);
 7         }
 8     public static void main(String[] args) {
 9         TestPolymorphism2 n = new TestPolymorphism2(); //創建對象n
10         n.showA();
11     }
12 }

運行結果:

在實驗中我們可以很清晰的看出多態性在java語言編程中占着多么重要的地位。

 


免責聲明!

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



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