1. 程式人生 > >Java 面向物件四大特性

Java 面向物件四大特性

Java 面向物件四大特性

1.抽象  2.封裝  3.繼承   4.多型

1.抽象。抽象就是將一些事物的共性和相似點抽離出來,並將這些屬性歸為一個類,簡單理解是:將需要解決的事情抽象成Java程式碼。

2.封裝。封裝是為了隱藏內部實現細節,是保證軟體部件具有優良的模組性的基礎。封裝的目標就是要實現軟體部件“高內聚,低耦合”,防止程式之間的相互依賴性帶來的變動影響。Java中private關鍵字是封裝一個重要的部分,因為private定義的變數或方法只能在內部使用,其他類不可直接使用,就好像一臺電腦中的元器件從表面看是不可見的,從而體現Java的封裝性。

3.繼承。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並可以加入若干新的內容,或修改原來的方法(Override,重寫方法)使之更適合特殊的需要,這就是繼承。繼承是子類自動共享父類資料和方法的機制,這是類之間的一種關係,提高了軟體的可重用性和可擴充套件性。簡單理解是:一些類的共同特性抽取到一個基類,然後這些類通過繼承而獲得原有的特性,而基類沒有的特性,則可以在類中建立新的。

4.多型。多型是執行時刻介面匹配的物件相互替換的能力。指程式定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在編譯期並不確定,而是在程式執行期間才確定(稱之為動態繫結),即一個引用變數指向的是哪個類的例項物件,在編譯期間並不確定,在執行階段才能決定,因此,這樣就可以使得引用變數繫結到各種不同的類實現上,從而實現不同的行為。多型性增強了軟體的靈活性和擴充套件性。例如:


 
/**
動物類
*/
public class Animal{
   //吃
   protected void eat()
    {
    }
   //發出聲音
   protected void voice()
    {
    }

}
貓類繼承動物類

   
/**
 貓類
*/
public class Cat extends Animal{
   protected void eat(){
   System.out.prinln("貓愛吃魚");
   }

   protected void voice(){
   System.out.println("喵喵喵");
   }
}


/**
 狗類
*/
public class Dog extends Animal{
   protected void eat(){
   System.out.prinln("狗愛吃骨頭");
   }

   protected void voice(){
   System.out.println("汪汪汪");
   }
}


多型的呈現
public static void main(String []args)
{
    Animal ani=new Cat();
   
    ani.eat();

    ani =  new Dog();

    ani.eat();
}


列印結果為:  貓愛吃魚                        狗愛吃骨頭

上述的栗子中通過ani 引用重新指定物件,呼叫eat()方法,卻打印出來不同的結果,這就是多型。當然這只是簡單的栗子,更深入的理解需要大家在專案中不斷的應用思考。


我的個人網站:美好禮物屋    我的個人APP: 騰訊應用寶APP下載