面向對象三大特性

来源:https://www.cnblogs.com/skylife/archive/2019/06/28/11105242.html
-Advertisement-
Play Games

Java面向對象編程有三大特性,它們是封裝、繼承和多態。 封裝: 字面上來說就是將一個東西包裹起來,這樣會掩飾掉內部的細節。怎麼樣?這麼一說是不是有點想法。 將類封裝起來,只提供想提供的方法介面,而不需要提供具體實現細節,這樣一來使得程式更加健壯。 另一方面比方說項目做到一半換人了,老闆現在要求吧代 ...


                   Java面向對象編程有三大特性,它們是封裝、繼承和多態。

 

            封裝:

 

                   字面上來說就是將一個東西包裹起來,這樣會掩飾掉內部的細節。怎麼樣?這麼一說是不是有點想法。

 

                   將類封裝起來,只提供想提供的方法介面,而不需要提供具體實現細節,這樣一來使得程式更加健壯。

 

                   另一方面比方說項目做到一半換人了,老闆現在要求吧代碼改了,有了封裝之後,你完全不用管前人寫的爛代碼,只需要給出必須              

           的介面方法,就可以自己寫自己的了,修改方便。

 

                   怎麼封裝呢?使用訪問修飾符。還記得類的訪問修飾符麽,只能寫public或者預設不寫。

 

                   在類裡面可以使用public、protected、預設不寫或者private。這四個修飾符的訪問許可權越來越低。

 

                   還有一種方法,使用內部類。使用內部類能夠更好的完成封裝,有關內部類的詳細介紹,請看下篇文章。

 

             繼承:

 

                    繼承很明顯就是從一個已有的類那得到一些東西,能夠很好的實現代碼的重用性。

 

                    被繼承的類稱之為父類或者超類,繼承父類的類稱為子類。Java中所有類都是Object類的子類。

 

                    另外JAVA中只允許單繼承,這樣一來避免了多繼承帶來的代碼過度耦合的問題。

 

                    雖然不能多繼承,但是java中可以實現多個介面,來實現功能的擴展。

 

             多態:

 

                    指的是子類對象可以賦值給父類變數,但運行是仍表現出子類的行為特征,這意味著同一個類型的對象在執行同一個方法時,可以                 

             表現出多種行為特征。

 

                    簡單來說,就是程式中同名的不同方法。

 

                    那麼,怎麼實現多態呢?

 

                    例如,可以通過子類對父類方法的覆蓋實現,還可以通過一個類中方法的重載,還可以通過將子類的對象作為父類的對象實現多                 

           態。

 

                    子類將父類方法覆蓋,指子類繼承了父類的方法,對方法名、參數和類型不做修改,而僅僅改動方法的實現。

 

                    這時候調用被覆蓋的父類欄位和方法時,需使用super關鍵字。但需要註意,父類中聲明為static、final的方法不能被覆蓋。

 

                    而且聲明為final的類的所有方法不允許被覆蓋。

 

                    另一種實現多態的方法,在類中定義同名但參數不同的方法,包括參數類型不同、參數個數 不同,即方法的重載來實現多態。簡單             

             的例子:

 

                                                                                                   run(int  i){}

                                                                                                   run(char c){}

                                                                                                   run(int i,char c){}

 

                     還可以通過對象引用實現多態,具體含義指引用型變數可以指向不同類型的對象

 

                     舉個例子,公司里有職員和管理兩類人,但是管理本身也是職員,也就是管理類繼承自職員類。

 

                     對於職員類型變數不僅可以表示職員還可以表示管理類對象。

 

                    多態大大提高了程式的抽象程度,降低了類和程式模塊之間的耦合性,也提高了類模塊的封閉性。

 

                    由於小編水平有限,如有不足,還請不吝賜教!!!此處也是重點,記下記下。微信搜索關註油墨山公眾號,獲取更多文章資訊!!!


 

                                                        ◆◆油墨未乾,為何停下雙手!◆◆


 

感謝關註!

微信號:youmoshan


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如果第二次看到我的文章,歡迎右側掃碼訂閱我喲~ 👉 每周五早8點 按時送達。當然了,也會時不時加個餐~ 這篇是「分散式系統理論」系列的第22篇,也是最後一篇。我們來聊聊分散式系統中的最後一道保障——監控。 監控這個事情,有點像我們平時對人的健康體檢。想要效果好、結果靠譜,就得“全面體檢”,每一項都 ...
  • 如果第二次看到我的文章,歡迎右側掃碼訂閱我喲~ 👉 每周五早8點 按時送達。當然了,也會時不時加個餐~ 是的,這份禮物最佳受眾是程式員。但是,如果你不是程式員,相信這些能使你更懂程式員,能更好的與他們交流。 有些小伙伴們應該知道了,之前的《分散式系統關註點——360°的全方位監控》是我去年開始寫的 ...
  • 在springMVC controller中返回json數據出現亂碼問題,因為沒有進行編碼,只需要簡單的註解就可以了 在@RequestMapping()中加入produces="text/html;charset=UTF-8"屬性即可,如下: ...
  • 1.Java 發展史 1991年01月 Sun公司成立了Green項目小組,專攻智能家電的嵌入式控制系統 1991年02月 放棄C++,開 發新語言,命名為“Oak” 1991年06月 JamesGosling開發了Oak的解釋器 1992年01月 Green完成了Green操作系 統、Oak語言、 ...
  • 本文續接上一章ArrayList原理及使用,對ArrayList中的常用方法subList進行了剖析,從源碼的角度對通過subList方法得到的集合和原集合有何關係,有何不同點,從而避免工作中遇到各種坑 ...
  • 原文鏈接: "https://www.cnblogs.com/mddblog/p/11105450.html" 如果已經比較熟悉,可以跳過整體介紹,直接看常見問題部分 整體介紹 方法交換是runtime的重要體現,也是"消息語言"的核心。OC給開發者開放了很多介面,讓開發者也能全程參與這一過程。 原 ...
  • 安裝環境: 6台 centos7.4 在各個節點下載官網release包,可以自己去官網找: wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解壓:tar -zxvf redis-5.0.5.tar.gz 進入目錄:cd redis ...
  • css樣式表使用 javafx中的css樣式,與html的有些不一樣,javafx中的css,是以 這種樣子的,具體可以參考文檔 "JavaFx css官方文檔" javafx中,css樣式有兩種使用方法 直接在fxml中使用 fxml引用css文件 fxml直接使用樣式 在某個控制項中使用style ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...