Java中多態應當注意

1、多態的分類:java

    一、引用多態:父類的引用能夠指向本類的對象,父類引用能夠指向子類對象,子類引用不能指向父類對象;安全

    二、方法多態:建立本類對象時,調用的方法爲本類方法;建立子類對象時,調用的方法爲子類重寫的方法或者繼承的方法;spa

   三、若是子類裏有一個獨有的方法,並非從父類中繼承過來的,那麼就不能經過父類的引用調用子類獨有的方法。設計


2、引用類型轉換:code

    一、向上類型轉換(隱式/自動類型轉換),是小類型到大類型的轉換,不存在風險;
orm

    二、向下類型轉換(強制類型轉換),是大類型到小類型的轉換,存在風險;對象

    三、instanceof運算符,來解決引用對象的類型,避免類型轉換的安全性問題;繼承

Dog dog=new Dog();
Animal animal =dog;//向上類型轉換
Dog dog2=(Dog)animal;
Cat cat =(Cat)animal;//一、編譯時不會報錯二、實際開闢的內存空間爲dog類型,會報錯

        instanceof運算符,能夠判斷一個引用是不是某個類型或者是某個類型的子類型,返回一個布爾值;
接口

Dog dog=new Dog();
Animal animal =dog;//向上類型轉換
Dog dog2=(Dog)animal;
if(animal instanceof Cat){
    Cat cat =(Cat)animal;
}else{
    System.out.println("沒法進行類型轉換");
}


3、抽象類abstruct:
內存

    一、某些狀況下,某個父類只是知道其子類應該包含怎樣的方法,可是沒法準確知道這些子類如何實現這些方法。抽象類是約束子類具備哪些特徵,即關注子類應該具備那些方法,而並不關注子類如何去實現;

    二、從多個具備相同特徵的類中抽象出一個抽象類,以這個抽象類做爲子類的模板,從而避免了子類設計的隨意性。


4、接口interface:

    一、接口能夠理解爲一個特殊的類,由全局的常量和公共的抽象方法組成;

    二、類是一種具體的實現提,而接口定義了某一批類所須要遵照的規範,接口不關心這些類的內部數據,也不關心這些類裏方法的實現細節,他只規定這些類裏必須提供某些方法。接口實際上是一個規範,是用來約束類的;

    三、接口是能夠多繼承的,類只能單繼承。接口能夠彌補類單繼承的不足;

    四、若是要繼承父類,繼承的接口必須在實現接口以前。

相關文章
相關標籤/搜索