三大特徵是:封裝、繼承和多態。html
1.封裝:根據職責將屬性和方法封裝到一個抽象的類中java
2.繼承:實現代碼的重用,相同的代碼不須要重複的寫函數
3.多態:(以封裝和繼承爲前提),不一樣的子類對象調用相同的方法,產生不一樣的執行結果post
封裝是指將某事物的屬性和行爲包裝到對象中,這個對象只對外公佈須要公開的屬性和行爲,而這個公佈也是能夠有選擇性的公佈給其它對象。在java中能使用private、protected、public三種修飾符或不用(即默認defalut)對外部對象訪問該對象的屬性和行爲進行限制。url
繼承是子對象能夠繼承父對象的屬性和行爲,亦即父對象擁有的屬性和行爲,其子對象也就擁有了這些屬性和行爲。這很是相似大天然中的物種遺傳。spa
多態性是指容許不一樣類的對象對同一消息做出響應。好比一樣的加法,把兩個時間加在一塊兒和把兩個整數加在一塊兒確定徹底不一樣。又好比,一樣的選擇編輯-粘貼操做,在字處理程序和繪圖程序中有不一樣的效果。多態性包括參數化多態性和包含多態性。多態性語言具備靈活、抽象、行爲共享、代碼共享的優點,很好的解決了應用程序函數同名問題。3d
2、重載和重寫的區別:htm
方法重載是指同一個類中的多個方法具備相同的名字,但這些方法具備不一樣的參數列表,即參數的數量或參數類型不能徹底相同對象
方法重寫是存在子父類之間的,子類定義的方法與父類中的方法具備相同的方法名字,相同的參數表和相同的返回類型
注:
(1)子類中不能重寫父類中的final方法
(2)子類中必須重寫父類中的abstract方法 blog
首先咱們來說講:重載(Overloading)
(1) 方法重載是讓類以統一的方式處理不一樣類型數據的一種手段。多個同名函數同時存在,具備不一樣的參數個數/類型。
重載Overloading是一個類中多態性的一種表現。
(2) Java的方法重載,就是在類中能夠建立多個方法,它們具備相同的名字,但具備不一樣的參數和不一樣的定義。
調用方法時經過傳遞給它們的不一樣參數個數和參數類型來決定具體使用哪一個方法, 這就是多態性。
(3) 重載的時候,方法名要同樣,可是參數類型和個數不同,返回值類型能夠相同也能夠不相同。沒法以返回型別做爲重載函數的區分標準。
參考:重載與重寫的區別