【Java】瘋狂Java基礎(一)——物件導向的特徵:繼承、封裝和多型
一、前言
小編記得,剛接觸計算機相關的課程的時候,接觸的是c++,c++的老師一上來就說c++是物件導向的,c語言是程式導向的。物件導向比程式導向厲害,是從程式導向發展過來的的。
當時有一個發小學的c語言,我就說,我學的比你的厲害。。O(∩_∩)O哈哈~
到現在才慢慢的理解了什麼是物件導向。這篇部落格就針對我們們的這些概念結合生活,再結合程式碼把物件導向的特徵體現出來。
二、物件導向的特徵
很多人都知道,物件導向的特徵有封裝、繼承、多型。
先來一波理論:來自《瘋狂java講義》
Java是物件導向的程式設計語言,提供了private、protected和public三個訪問控制修飾符來實現良好的封裝,提供了extends關鍵字來讓子類繼承父類,子類繼承父類就可以繼承到父類的成員變數和方法,如果訪問控制允許,子類例項可以直接呼叫父類裡面的方法。
其實在我們學習的過程中,也慢慢接觸了java的物件導向。
三、封裝
一句話說說:
把一類物件,相似的屬性彙總到一起,組成一類,這個類把該隱藏的隱藏,該暴露的暴露。
java提供了三個訪問控制符:private、protected和public,分別代表了三個訪問控制級別,另外有一個不加任何訪問控制符的訪問控制級別,由小到大:
訪問控制符 | 說明 |
---|---|
private | 被修飾後,這個成員只能被當前類內部訪問 |
default | 包訪問許可權,被修飾的成員或者外部類可以被相同包下的其他類訪問 |
protected | 子類訪問許可權,被修飾成員可以被同一個包中其他類訪問,也可以被不同包中的子類訪問 |
public | 公交車,被修飾的成員可以被所有類訪問 |
程式碼很常見,簡單一個類:
public class A{
....
}
四、繼承
一句話說說:
涉及到父子關係,自類可以得到父類的特徵,相對是父類的擴充,達到程式碼重用的效果
Java中用extends關鍵字,實現繼承類被稱為子類,被繼承類被稱為父類。例如,水果和蘋果的關係,蘋果繼承了水果,蘋果是水果的子類,水果是蘋果的父類。
五、多型
一句話說說:
多種形態,多種實現形式
在程式碼中就是一個方法名字,多種實現形式。過載(overload)和重寫(override)是多型的兩種主要形式。
過載(Overload)java程式碼中,一個類可以有多個方法名相同、引數不同的方法。
重寫(override)java程式碼中,子類繼承父類,可以重寫父類的方法
過載demo:
public class A{
public void test(){
....
}
public Integer test(){
.....
}
public void test(Integer a){
.....
}
}
這裡小編可以說說過載的機制:動態聯編。當有方法呼叫A類的test方法的時候,處理器會根據test方法的引數型別、返回值型別自動判斷出要呼叫那個方法。所以java還是為我們鋪墊好了很多呢~!
重寫(override)demo:
public class A{
public test(){
....
}
}
public class B extends A{
public test(){
******
}
}
在上面的程式碼中,很容易看出使用了繼承的關係,在繼承中,B類繼承了A類,B是A的子類。同時B類可以訪問A類的所有非private的方法。B類中也定義了一個和A類一樣的方法test,這個就是對A類的方法重寫。
六、小結
可以說物件導向的三大特徵都是會被問到的在面試中,我們還是要深刻的理解一下,最好是理論結合程式碼來解釋,空範範的理論會讓人感覺有點是剛從學校出來的樣子。所以要多結合程式碼解釋。
相關文章
- JAVA物件導向基礎--封裝 繼承 多型Java物件封裝繼承多型
- [JAVA] Java物件導向三大特徵:封裝、繼承、多型Java物件特徵封裝繼承多型
- 物件導向三大特徵(封裝/繼承/多型)物件特徵封裝繼承多型
- 物件導向的三個基本特徵是:封裝、繼承、多型物件特徵封裝繼承多型
- java核心思想物件導向三大特性(封裝,繼承,多型)Java物件封裝繼承多型
- 物件導向三大特性-----封裝、繼承、多型物件封裝繼承多型
- 專案過程中如何使用物件導向的特徵:繼承,封裝,多型,介面物件特徵繼承封裝多型
- 物件導向基礎(1)--繼承 多型 重構物件繼承多型
- 物件導向的三大特徵,封裝、繼承、多型的個人理解以及程式碼分析物件特徵封裝繼承多型
- java物件導向繼承Java物件繼承
- 瘋狂java07--物件導向的陷阱Java物件
- JAVA物件導向高階一:繼承Java物件繼承
- java物件導向的三大特徵之封裝Java物件特徵封裝
- js:物件導向程式設計,帶你認識封裝、繼承和多型JS物件程式設計封裝繼承多型
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- JAVA(一)JAVA基礎/物件導向基礎/高階物件導向Java物件
- 封裝、繼承和多型封裝繼承多型
- go物件導向思想:封裝、繼承、多肽Go物件封裝繼承
- 物件導向:封裝,多型物件封裝多型
- 如何講清楚 Java 物件導向的問題與知識?(類與物件,封裝,繼承,多型,介面,內部類...)Java物件封裝繼承多型
- Java入門教程九(封裝繼承多型)Java封裝繼承多型
- java封裝繼承以及多型(含程式碼)Java封裝繼承多型
- java 的 四 個 基 本 特 性 ——封裝 繼承 多型 抽象Java封裝繼承多型抽象
- Java基礎之淺談繼承、多型Java繼承多型
- 5-Java物件導向-繼承(下)Java物件繼承
- java學習——物件導向之繼承Java物件繼承
- Java物件導向--多型Java物件多型
- 25. 企業級開發基礎6:物件導向特徵(繼承)物件特徵繼承
- 【Python入門】12.物件導向程式設計之 三大特徵:封裝、繼承和多型 & 鴨子型別是什麼?...Python物件程式設計特徵封裝繼承多型型別
- 物件導向之封裝(Java)物件封裝Java
- java-物件導向程式設計--繼承Java物件程式設計繼承
- JAVA物件導向基礎Java物件
- 【Java 基礎】——物件導向Java物件
- Java基礎 --- 物件導向Java物件
- Java基礎-物件導向基礎Java物件
- 【Java基本功】一文了解Java中繼承、封裝、多型的細節Java中繼繼承封裝多型
- 複習java物件導向(封裝)Java物件封裝
- go語言中的封裝,繼承和多型Go封裝繼承多型