Java面向對象編程有三大特性,它們是封裝、繼承和多態。java
封裝:編程
字面上來講就是將一個東西包裹起來,這樣會掩飾掉內部的細節。怎麼樣?這麼一說是否是有點想法。微信
將類封裝起來,只提供想提供的方法接口,而不須要提供具體實現細節,這樣一來使得程序更加健壯。spa
另外一方面比方說項目作到一半換人了,老闆如今要求吧代碼改了,有了封裝以後,你徹底不用管前人寫的爛代碼,只須要給出必須 對象
的接口方法,就能夠本身寫本身的了,修改方便。blog
怎麼封裝呢?使用訪問修飾符。還記得類的訪問修飾符麼,只能寫public或者默認不寫。繼承
在類裏面可使用public、protected、默認不寫或者private。這四個修飾符的訪問權限愈來愈低。接口
還有一種方法,使用內部類。使用內部類可以更好的完成封裝,有關內部類的詳細介紹,請看下篇文章。io
繼承:面向對象編程
繼承很明顯就是從一個已有的類那獲得一些東西,可以很好的實現代碼的重用性。
被繼承的類稱之爲父類或者超類,繼承父類的類稱爲子類。Java中全部類都是Object類的子類。
另外JAVA中只容許單繼承,這樣一來避免了多繼承帶來的代碼過分耦合的問題。
雖然不能多繼承,可是java中能夠實現多個接口,來實現功能的擴展。
多態:
指的是子類對象能夠賦值給父類變量,但運行是仍表現出子類的行爲特徵,這意味着同一個類型的對象在執行同一個方法時,能夠
表現出多種行爲特徵。
簡單來講,就是程序中同名的不一樣方法。
那麼,怎麼實現多態呢?
例如,能夠經過子類對父類方法的覆蓋實現,還能夠經過一個類中方法的重載,還能夠經過將子類的對象做爲父類的對象實現多
態。
子類將父類方法覆蓋,指子類繼承了父類的方法,對方法名、參數和類型不作修改,而僅僅改動方法的實現。
這時候調用被覆蓋的父類字段和方法時,需使用super關鍵字。但須要注意,父類中聲明爲static、final的方法不能被覆蓋。
並且聲明爲final的類的全部方法不容許被覆蓋。
另外一種實現多態的方法,在類中定義同名但參數不一樣的方法,包括參數類型不一樣、參數個數 不一樣,即方法的重載來實現多態。簡單
的例子:
run(int i){}
run(char c){}
run(int i,char c){}
還能夠經過對象引用實現多態,具體含義指引用型變量能夠指向不一樣類型的對象
舉個例子,公司裏有職員和管理兩類人,可是管理自己也是職員,也就是管理類繼承自職員類。
對於職員類型變量不只能夠表示職員還能夠表示管理類對象。
多態大大提升了程序的抽象程度,下降了類和程序模塊之間的耦合性,也提升了類模塊的封閉性。
因爲小編水平有限,若有不足,還請不吝賜教!!!此處也是重點,記下記下。微信搜索關注油墨山公衆號,獲取更多文章資訊!!!
◆◆油墨未乾,爲什麼停下雙手!◆◆
感謝關注!
微信號:youmoshan