對Java面向對象中多態的理解


理解的要點:多態意味着父親的變量可以指向子類對象

 面向對象程序設計的三大支柱是封裝、繼承和多態

封裝對外把相應的屬性和方法實現的細節進行了隱藏。繼承關系使一個子類繼承父親的特征,並且加上了一些新的特征。子類是它的父親的特殊化,

每一個子類的實例都是其父親的實例,但是反過來就不成立。例如:每個圓都是一個幾何對象,但並非每一個幾何對象都是圓。因此,總可以將子類

的實例傳給需要父親型的參數。考慮如下的代碼。

 

class Person{

   String name = "John";

    public void 談生意(){
          System.out.println("談生意");

   }

}

class SuperMan extends Person{

     String name = "superMan";

     public void 談生意(){

          System.out.println("談幾個億的大單子");

     }

    public void fly(){

       System.out.println("超人飛出去救人");

    }

}

 

public class Demo1{

    public static void main(String [] args){
   

         Person p = new SuperMan();    //父親引用指向子類對象 父類引用指向子類對象就是向上轉型

        System.out.println(p.name);      

        p.談生意();

        SuperMan sm = (SuperMan)p; //向下轉型

   }

 

}

 綜上分析:使用父類對象的地方都可以使用子類對象。這就是通常所說的多態(polymorphism),它源於希臘文字,意思是“多種形式”)。簡單來說,對態

意味着父親型變量可以引用子類型的對象。


免責聲明!

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



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