java面向對象的幾個基本特徵

面向對象的特點:
1:繼承
特殊類的對象擁有其一般類的全部屬性與服務,稱作特殊類對一般類的繼承。例如,輪船、客輪;人、大人。一個類可以是多個一般類的特殊類,它從多個一般類中繼承了屬性與服務,這稱爲多繼承。例如,客輪是輪船和客運工具的特殊類。在java語言中,通常我們稱一般類爲父類(superclass,超類),特殊類爲子類(subclass)。但我們要注意java語言是不支持多繼承的,它對多繼承的實現是通過接口來進行的。

子類繼承父類的:大部分成員變量和大部分成員方法(不包括私有變量和私有方法)

2:抽象類和抽象方法
類中有一個abstract修飾符(但要注意只要有抽象方法的類就是抽象類)、父類中存在抽象方法(也可以沒有)抽象方法沒有方法體並且修飾符一定要是public或者protected,父類不能new出來
所有子類都必須實現這些抽象方法(如果沒實現就必須把它也定義成一個抽象方法) 雖然不能new出來但是它可以有自己的static方法。
3:封裝。某個類具有很多的方法,很多時候只管調用,不必瞭解具體實現,我們只要具體的結果這種是典型的“結果導向”
封裝有兩個含義

  1. 把對象的全部屬性和全部服務結合在一起,形成一個不可分割的獨立單位(即對象)。
  2. 信息隱蔽,即儘可能隱蔽對象的內部細節,對外形成一個邊界〔或者說形成一道屏障〕,只保留有限的對外接口使之與外部發生聯繫。
    封裝的優點:
    封裝的原則在軟件上的反映是:要求使對象以外的部分不能隨意存取對象的內部數據(屬性),從而有效的避免了外部錯誤對它的”交叉感染”,使軟件錯誤能夠局部化,大大減少查錯和排錯的難度。

4:接口實現多繼承
在類中實現接口可以使用關鍵字implements
在類的繼承中,只能做單重繼承,而實現接口時,一次則可以實現多個接口,
每個接口間使用逗號“,”分隔。

5:多態三個條件(繼承、重寫、父類對象引用指向子類對象)
這裏我們通過一個具體的實例來看一下多態的實現。

這裏先定義一個Person類,裏面有一個eat方法。

package com.mashensoft.interfacedemo;

public class Person {
public void eat(){
    System.out.println("吃飯");
}
}

這裏寫了兩個子類,分別重寫了eat方法

package com.mashensoft.interfacedemo;

public class Student extends Person {
    @Override
    public void eat() {

        System.out.println("吃便宜的飯");
    }
}

package com.mashensoft.interfacedemo;

public class Teacher extends Person{
@Override
public void eat() {

    System.out.println("吃好吃的飯");
}
}

這裏寫一個測試方法

package com.mashensoft.interfacedemo;

public class Person {
    public void eat() {
        System.out.println("吃飯");
    }

    public static void main(String args[]) {
        Person p1 = new Student() ;
        p1.eat();
        Person p2 = new Teacher() ;
        p2.eat();
    }
}

效果截圖
這裏寫圖片描述
這裏我們可以看到雖然這只是幾個非常簡單的類但是,多態的特點都體現了出來繼承、重寫父類方法、父類對象引用指向子類對象。這裏我們要注意的就是父類對象只能調用自己本身已有的定義過的方法,子類對象中另外寫的方法是不能夠調用的。同理這種多態也可以通過接口來實現,效果其實一樣的

多態的好處:
1.可替換性(substitutability)。多態對已存在代碼具有可替換性。
2.可擴充性(extensibility)。多態對代碼具有可擴充性。
3.接口性(interface-ability)。多態是超類通過方法簽名,向子類提供了一個共同接口,由子類來完善或者覆蓋它而實現的。
4.靈活性(flexibility)。它在應用中體現了靈活多樣的操作,提高了使用效率。
5.簡化性(simplicity)。多態簡化對應用軟件的代碼編寫和修改過程。

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