java核心思想物件導向三大特性(封裝,繼承,多型)
java物件導向的思想
1.什麼是物件?(理解)
在java中,我們用“屬性“來描述現實物件的靜態特徵
我們用“方法”來描述現實物件的動態功
物件同時具有屬性和方法兩項特性
物件封裝了屬性和方法,來共同描述一個事物
2.如何在java中建立一個物件?
a.建立一個類
b,new 類名();
3.什麼是類?
具有相同屬性和方法的物件的集合;
類是模子,定義物件將會擁有的特徵(屬性)和行為(方法)(同一個類中的物件都具有這個類的特徵)
類是由屬性和方法組成的。
4.類核物件的關係?
a.類是抽象的,是模板,物件是具體的,是類當中的一個例項
b.不能直接使用類,要使用類中具體的物件
c.同一個類當中的兩個物件,都一定具有這個類的相同特徵(屬性、方法)
d.類是物件的型別
封裝
1.定義:隱藏物件的屬性和實現細節,僅對外公開介面,控制在程式中屬性的讀和修改的訪問級別。
2.封裝的目的是:增強安全性和簡化程式設計,使用者不必瞭解具體的實現細節,而只是要通過外部介面,
一特定的訪問許可權來使用類的成員。
3.封裝的基本要求是:把所有的屬性私有化,對每個屬性提供getter和setter方法,如果有一個帶參的建構函式的話,
那一定要寫一個不帶參的建構函式。在開發的時候經常要對已經編寫的類進行測試,所以在有的時候還有
重寫toString方法,但這不是必須的。
繼承
繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或者新的功能,
也可以使用父類的功能,但不能選擇性地繼承父類。通過使用繼承我們可以非常方便地複用以前的程式碼。
1.繼承
==》為什麼要使用繼承?
可以減少程式碼量,可以讓程式碼維護更容易,是物件導向的思想
==》什麼是繼承?
存在父子關係,我們就可以說子類繼承了父類
==》在java中如何實現父類關係
關鍵字:extends
==》理解繼承?
1.類是對所有具有相同屬性和方法的物件的集合,父類是將有相同的屬性和方法的類的提取
2.父子關係屬於 is-a關係(XX是XX)
3.當繼承關係產生後,子類不用定義就可以擁有父類所有的屬性和方法(除了私有)
4.子類也可以有自己的特有的屬性和方法
5.子類不可以呼叫父類的構造方法
6.建立子類物件,一定會先呼叫父類的構造,然後在呼叫自己的構造
7.只要父類有有參構造,那麼子類必須也要定義有參構造,除非父類同時也存在無參構造
8.子類構造中呼叫父類的構造,必須放在子類構造方法的第一行
9.構造方法中呼叫構造方法,super和this關鍵字不能同時存在
2.super關鍵字和this關鍵字
super關鍵字在java中表示的是父類物件,super()呼叫父類構造
this代表的是本類,this()呼叫本類構造
super只能出現在子類的方法和構造方法中
super不能訪問父類的private成員
3 private,default,protected,public的作用範圍?
private:只有本類可以使用
default:本類可以訪問,同一個包下可以訪問
protected:本類可以訪問,同一個包可以訪問,子類可以訪問(可以在不同的包下)
public:同一個專案下的任何類都可以訪問
4.方法的重寫?
==》什麼是方法的重寫?
在父子類當中,方法名相同,返回值型別相同(或者是父類型別),方法體不同的方法,構成了方法的重寫
卻別過載:同一個類中,方法名相同,引數不同(個數,型別)和返回值無關的方法構成方法的過載
多型
1.概念:
相同的事物,呼叫其相同的方法,引數也相同時,但表現的行為卻不同。
2.Java實現多型有三個必要條件:繼承、重寫、向上轉型。
繼承:在多型中必須存在有繼承關係的子類和父類。
重寫:子類對父類中某些方法進行重新定義,在呼叫這些方法時就會呼叫子類的方法。
向上轉型:在多型中需要將子類的引用賦給父類物件,只有這樣該引用才能夠具備技能呼叫父類的方法和子類的方法。
只有滿足了上述三個條件,我們才能夠在同一個繼承結構中使用統一的邏輯實現程式碼處理不同的物件,從而達到執行不同的行為。
3.多型的實現方式:
(1)基於繼承實現的多型
基於繼承的實現機制主要表現在父類和繼承該父類的一個或多個子類對某些方法的重寫,多個子類對同一方法的重寫可以表現出不同的行為。
(2)基於介面實現的多型
繼承是通過重寫父類的同一方法的幾個不同子類來體現的,那麼就可就是通過實現介面並覆蓋介面中同一方法的幾不同的類體現的。
在介面的多型中,指向介面的引用必須是指定這實現了該介面的一個類的例項程式,在執行時,根據物件引用的實際型別來執行對應的方法。
繼承都是單繼承,只能為一組相關的類提供一致的服務介面。但是介面可以是多繼承多實現,它能夠利用一組相關或者不相關的介面進行組合與擴充,
能夠對外提供一致的服務介面。所以它相對於繼承來說有更好的靈活性。
4.多型性主要表現在如下兩個方面:
(1)方法過載.通常指在同一個類中,相同的方法名對應著不同的方法實現,但是方法的引數不同.
(2)成員覆蓋.通常指在不同類(父類和子類)中,允許有相同的變數名,但是資料型別不同;也允許有相同的方法名,但是對應的方法實現不同.
5.多型的好處:
程式的可擴充套件性及可維護性增強。
相關文章
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- [JAVA] Java物件導向三大特徵:封裝、繼承、多型Java物件特徵封裝繼承多型
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- 物件導向的三個基本特徵是:封裝、繼承、多型物件特徵封裝繼承多型
- 【Java】瘋狂Java基礎(一)——物件導向的特徵:繼承、封裝和多型Java物件特徵繼承封裝多型
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- 物件導向:封裝,多型物件封裝多型
- java物件導向繼承Java物件繼承
- js:物件導向程式設計,帶你認識封裝、繼承和多型JS物件程式設計封裝繼承多型
- ~~核心程式設計(五):物件導向——多繼承~~程式設計物件繼承
- Java中物件導向三大特性之繼承Java物件繼承
- Java物件導向03——三大特性之繼承Java物件繼承
- 專案過程中如何使用物件導向的特徵:繼承,封裝,多型,介面物件特徵繼承封裝多型
- 物件導向 -- 三大特性之繼承物件繼承
- 封裝、繼承和多型封裝繼承多型
- 物件導向的三大特徵,封裝、繼承、多型的個人理解以及程式碼分析物件特徵封裝繼承多型
- 物件導向基礎(1)--繼承 多型 重構物件繼承多型
- 物件導向:繼承物件繼承
- 物件導向--繼承物件繼承
- 物件導向-繼承物件繼承
- 如何講清楚 Java 物件導向的問題與知識?(類與物件,封裝,繼承,多型,介面,內部類...)Java物件封裝繼承多型
- php物件導向多繼承實現PHP物件繼承
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- 5-Java物件導向-繼承(下)Java物件繼承
- java學習——物件導向之繼承Java物件繼承
- JAVA物件導向高階一:繼承Java物件繼承
- Golang物件導向_繼承Golang物件繼承
- 物件導向之繼承物件繼承
- php物件導向--繼承PHP物件繼承
- 面向2-封裝、繼承、多型封裝繼承多型
- Go語言結構體(struct)物件導向程式設計進階篇(封裝,繼承和多型)Go結構體Struct物件程式設計封裝繼承多型
- Java物件導向--多型Java物件多型
- java-物件導向程式設計--繼承Java物件程式設計繼承
- [.net 物件導向程式設計基礎] (12) 物件導向三大特性——繼承物件程式設計繼承
- 物件導向之封裝(Java)物件封裝Java