JAVA學習日誌——繼承性

我們已經瞭解過了類和對象,那麼如果有多各類擁有一樣的屬性和方法時,這個時候人們就開始考慮如何能夠增強代碼的複用性來使代碼更爲簡化。畢竟我們程序員都是懶人啊,對於我們來說,能少些寫代碼就絕對不會多寫。這個時候我們就引出了繼承性這個概念。
就像一些孩子可以擁有父親的特點一樣,我們就引申出來了父類和子類的繼承關係。父類具有的非私有訪問模式的屬性和方法可以繼承到子類中,而子類又可以增加自己的屬性和方法。這樣就可以減少代碼的冗餘。
具體繼承方法如下:

class 父類{
類體;
}

class 子類名 extends 父類名{
子類體;
}
/**
 * 
 * @author Lnd Niu
 *創建父類手機iphone1
 *具有顏色尺寸等屬性和打電話的功能
 */
public class IPhone {
    String color;
    String size;

    void tellPhone(String num)
    {
        System.out.println("打電話給:"+num);
    }

}
/**
 * 
 * 
 * @author Lnd Niu
 *定義子類IPhone2 它具有父類的所有屬性和方法 另外還有自己的功能發短信
 */
public class IPhone2 extends IPhone1{

    void text(String num,String img)
    {
        System.out.println("把短信"+img+"發送到"+num);
    }


}

也就是說盡管子類中沒有寫出父類的屬性和方法,但是依舊包含父類的屬性和方法。可以調用子類中的方法哦~

關鍵字this和super
如果對於父類和子類如果有相同的屬性和方法那麼應該如何區分使用呢?
我們可以使用this和super來進行區分。this指的是當前類的對象,super指的是當前類父類的對象。如果想要在子類中引用父類的屬性值就可以通過super來實現。

this.當前對象的屬性;
this.當前對象的方法名();
super.父類的屬性;
super.父類的屬性名();

我們再來說一下父類和子類的類型轉換。我們在創建實例對象時,可以創建上轉型對象和下轉型對象。“子轉父爲隱,父轉子爲顯”

由子類型轉爲父類型是隱式轉換。也就是不需要強制類型轉換,可以直接轉換。
由父類型轉換爲子類型是強制類型轉換。

子類實例化的對象賦值給父類聲明變量,則該對象稱爲上轉型對象,這個過程稱爲對象上轉型,對應於數據類型轉換中的自動類型轉換(也叫隱式轉換)。
上轉型對象不能操作子類新增的成員變量;不能調用子類新增的方法:
上轉對象調用父類方法,如果該方法已被子類重寫,則表現子類重寫後的行爲特徵,否則表現父類的行爲特徵。
使用上轉型對象調用成員變量,無論該成員變量是否已經被子類覆蓋,使用的都是父類中的成員變量:

下轉型對象:
可以將上轉型對象再強制轉換爲創建該對象的子類類型的對象,即將上轉型對象還原爲子類對象,對應於數據類型轉換中的強制類型轉換。
還原後的對象又具備了子類所有屬性和功能,即可以操作子類中繼承或新增的成員變量,可以調用子類中繼承或新增的方法。
注意:不可以將父類創建的對象通過強制類型轉換賦值給子類聲明的變量。

我們可以在創建實例對象的時候來使用。
比如:有一個子類是iPhone2.它的父類是iPhone2

上轉型對象:
IPhone2 iphoneShang=new IPhone1();

下轉型:
IPhone1 iphoneXia=(IPhone1)iphoneShang;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章