java 面向对象的特性 抽象_java面向对象的四个特性
java面向對象編程是指:Java語言提供類、接口和繼承等面向對象的特性,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關鍵字為implements)。另外,java是面向對象,但不是所有的都是對象,基本數(shù)據(jù)類型就不是對象,所以才會有封裝類。
面向對象的特性有1)抽象,2)封裝,3)繼承,4)多態(tài)。
1)抽象
抽象類:包含抽象方法的類稱之為抽象類,但不意味著抽象類中只能有抽象方法,它和普通類一樣,可以擁有普通的成員變量、方法。
1、抽象類不能被實例化。抽象類的子類必須給出抽象類中的抽象方法的具體實現(xiàn),除非該子類也是抽象類。
2、 抽象類中不一定包含抽象方法,但是有抽象方法的類必定是抽象類。
3、抽象類中的抽象方法只是聲明,不包含方法體,就是不給出方法的具體實現(xiàn)也就是方法的具體功能。
4、構造方法,類方法(用 static 修飾的方法)不能聲明為抽象方法。
5、被定義為abstract的類需要被子類繼承,但是被修飾為final的類是不能被繼承和改寫的,這兩者是不能一起用來做修飾的。
接口:接口是一種特殊的抽象類。當使用類的時候,僅關注其行為,不關心繼承時可以使用接口來代替類。接口中的方法都是抽象方法,abstract默認不寫,所以抽象類中的抽象方法不能用訪問修飾符。接口中聲明的成員默認為static final成員(不管是基礎數(shù)據(jù)類型還是引用類型),且必須初始化。
接口的特性:
1、接口中每一個方法也是隱式抽象的,接口中的方法會被隱式的指定為?public abstract(只能是 public abstract,其他修飾符都會報錯)。
2、接口中可以含有變量,但是接口中的變量會被隱式的指定為?public static final?變量(并且只能是 public,用 private 修飾會報編譯錯誤)。
3、接口中的方法是不能在接口中實現(xiàn)的,只能由實現(xiàn)接口的類來實現(xiàn)接口中的方法。
接口和抽象類的區(qū)別:
1、抽象類中的方法可以有方法體,但是接口中的方法不行。
2、抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是?public static final?類型的(隱式公有的)。
3、接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法(用 static 修飾的方法),而抽象類是可以有靜態(tài)代碼塊和靜態(tài)方法。【JDK1.8后,接口里面可以有靜態(tài)方法和方法體了】
4、一個類只能繼承一個抽象類,而一個類卻可以實現(xiàn)多個接口。
5、抽象類有構造函數(shù),而接口沒有構造函數(shù)。
2)封裝(Encapsulation):指一種將抽象性函式接口的實現(xiàn)細節(jié)部份包裝、隱藏起來的方法。指一種將抽象性函式接口的實現(xiàn)細節(jié)部份包裝、隱藏起來的方法。
3)繼承
繼承的特性:
1、子類擁有父類非 private 的屬性、方法。
2、子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
3、子類可以用自己的方式實現(xiàn)父類的方法。
4、Java 的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如 A 類繼承 B 類,B 類繼承 C 類,所以按照關系就是 C 類是 B 類的父類,B 類是 A 類的父類,這是 Java 繼承區(qū)別于 C++ 繼承的一個特性。
5、提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯(lián)系越緊密,代碼獨立性越差)。
4)多態(tài):將子類對象賦給父類的引用,會產(chǎn)生多態(tài)。
如:Father son =new Son() 【順便提一下:此時的對象son只能調用Father的方法(指的是子類重寫或者繼承父類的那些方法),而不能調用本身定義的一些方法。因為多態(tài)中強調:編寫java程序時,引用類型變量只能調用其編譯時類型的變量,不能調用其運行時類型變量。】
多態(tài)的三個必要條件:1、繼承? ?2、重寫? ?3、父類引用指向子類對象
多態(tài)的作用:
1、不必編寫每一子類的功能調用,可以直接把不同子類當父類看,屏蔽子類間的差異(也可以說隱藏了細節(jié)),提高代碼的通用率/復用率。
2、父類引用可以調用不同子類的功能,提高了代碼的擴充性和可維護性。
多態(tài)的表現(xiàn)形式可以是對父類的方法的重寫或重載。【重載是指一個類中可以有同樣的修飾符,返回值,方法名,但參數(shù)個數(shù)或順序不同的方法。而重寫指的是子類繼承父類后,重寫父類的方法。重寫是子類對父類的允許訪問的方法的實現(xiàn)過程進行重新編寫,返回值和形參都不能改變。即外殼不變,核心重寫!】
多態(tài)的實現(xiàn)方式:1、重寫;2、接口;3、抽象類和抽象方法。
總結
以上是生活随笔為你收集整理的java 面向对象的特性 抽象_java面向对象的四个特性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java的finally_java的fi
- 下一篇: 交换排序 java_java实现交换排序