【Java基礎知識】物件導向有哪些特性

ii_chengzi發表於2020-07-22

Java是一門物件導向的語言,物件導向的主要特點有封裝,繼承,多型

封裝,意思就是把類的一些屬性進行封裝(“隱藏”),儘可能的避免直接訪問物件一些屬性,以保證其安全性,如果必須要訪問這些屬性,我們可以單獨的提供一些介面(共有方法)進行訪問,這樣我們就可以避免因為直接訪問屬性資訊造成的誤操作。

繼承,在我們的生活中也有很多的繼承關係,比如子承父業,在Java中,我們也可以有繼承的概念,但是繼承只存在於父子類(介面)中,比如我們經常說的Dog類繼承於Animal類,動物類Animal具有自己的一些屬性,Dog屬於Animal的一種,所以具有Animal的一些屬性,但是Dog也有自己的一些特定屬性,這時候如果我們單獨在重新建立一個類Dog,就需要重新寫一遍Animal類的屬性,既費時又不好維護,這時候我們就可以使用繼承,使用Dog類繼承Animal類,這時候,Dog就包含了Animal類的一些屬性,就不需要我們多次重複寫這些屬性了。

【Java基礎知識】物件導向有哪些特性

多型,即對於同一個物件,可能執行出不同的結果,比如上面的Animal類,我們建立他的兩個子類,分別為Dog和Cat,Animal有個方法叫做public void jiaoSheng() { System.out.println( “動物叫聲” ) ; } 兩個子類分別重寫了這個方法,實現形式Dog:public void jiaoSheng() { System.out.pringln( “狗叫聲” ) ; }, Cat: public void jiaoSheng() { System.out.println( “貓叫聲” ) ; },這時候我們可以建立一個Animal物件 animal = new Animal( );這時候我們呼叫animal.jiaoSheng() ;列印出 “動物叫聲”;當animal = new Dog( ) ;的時候,我們呼叫animal.jiaoSheng() ; 列印出 “狗叫聲”;當 animal = new Cat() ;的時候,我們呼叫animal.jiaoSheng() ; 列印出“貓叫聲”;對於同一個物件animal我們呼叫同一個方法的時候,列印出的結果是不相同的,利用多型,我們就可以進行很多的擴充套件,而不需要過多的去修改原先的程式碼,可以保證程式碼的可維護性;從上面我們可以看得出來,如果要有多型,需要滿足三個條件,第一個繼承(或實現介面),第二個重寫,也就是需要重寫父類裡面的方法,否則不會實現多型,物件呼叫的還是父類的方法,第三個父類引用指向子類物件,就像上面的animal他是一個Animal類的物件,但我們new的時候,建立的是子類Dog和Cat類的兩個物件;

以下為原始碼示例:

public class Animal{

public void jiaoSheng() {

System.out.println(“動物叫聲”);

}

}

public class Dog extends Animal{

@Override

public void jiaoSheng() {

System.out.println(“狗叫聲”);

}

}

public class Cat extends Animal{

@Override

public void jiaoSheng() {

System.out.println(“貓叫聲”);

}

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2706085/,如需轉載,請註明出處,否則將追究法律責任。

相關文章