面向對象的理解

来源:http://www.cnblogs.com/zlazm/archive/2017/11/25/7895130.html
-Advertisement-
Play Games

這個是我對面向對象的理解,理解有誤請噴我吧!菜鳥一枚! 用最簡單的方式,去辦最複雜的是,看字面意思理解面向對象,就是先要面向找到需要面向的東西,把所要面向的東西抽象出來,封裝在一個盒子中組成一個對象。而這個東西可以是對象的屬性,對象的行為特征等。所以面向對象在我看來就是將所要表示的具有相同對象的屬性 ...


這個是我對面向對象的理解,理解有誤請噴我吧!菜鳥一枚!

  用最簡單的方式,去辦最複雜的是,看字面意思理解面向對象,就是先要面向找到需要面向的東西,把所要面向的東西抽象出來,封裝在一個盒子中組成一個對象。而這個東西可以是對象的屬性,對象的行為特征等。所以面向對象在我看來就是將所要表示的具有相同對象的屬性和行為特征封裝在一個類中組成一個類。而這個類可是在單純一點,比如一個類裡面只封裝對象的屬性,在類多了時組成一個包,這個包專門放屬性類。在回到前面那句話,將具有相同屬性和行為特征的對象封裝在一起。實現了代碼之間的低耦合、高內聚,這樣就產生了封裝,面向對象的特征之一,封裝是提高了代碼之間的可維護性。

  封裝起來的代碼看起來就優雅多了,而系統還需要進行升級什麼的呀,在不能滿足需求的時候,就需要在去在原本的類的基礎上去寫新的東西,比如原本人眼睛、鼻子什麼的都有了,可是現在需要有一個衣服等等。這樣就可以將人所封裝的類看成一個基類,在這基礎上去繼承人這個類,實現一個新類就是衣服類。所以這也就是面向對象的另一個特征繼承,繼承實現了代碼之間的可擴展性,有利於系統的擴展。為了系統的可擴展性,又引出了一個新的概念就是多態。

  在說多態之前在說一個,就是重寫和重載這兩個我的理解。

  重寫,,一般是發生在兩個類之間的,重寫的條件就是要子類去繼承父類,重寫父類中的方法,不包含父類的私有方法,重寫中子類的方位許可權要比父類中的訪問許可權要大,並且重寫中的子類要和父類的名字,參數,返回值相同。不相同的話是直接報錯了,不信去試試。並且重寫的方法的異常要比父類中的異常要小或者相同,重寫是子類對父類的擴展。

  而重載呢,是發生在一個類中,定義是一個類中方法名相同,形參列表不同的方法。很好理解,比如人是一類,而人中有一個方法是愛好,具體愛好什麼呢,這個就根據編程人員的定義了,同樣的將愛好這個類中的具體愛好在定義到一個類中,在引用進來都可以。

重載也是一種多態,是發生在一個類中的不同方法,讓一個類中的相同方法所傳遞的不同參數,實現一個類的多態。

   在說一下多態吧,子類繼承父類,之類重寫父類中的方法,或者在類中實現自己的方法,達到系統的可擴展性。如果從另一個角度去理解的話,我認為重載是垂直對一個類中的方法實現多態。而重寫是在對類與類之間實現水平擴展,相互之間進行彌補,一起打造了多態的環境。介面也是可以去繼承去實現的,這裡就寫了,網上代碼和資料很多。

  寫的不好不要介意,我個人的理解方式,請噴吧!大神可以對我菜鳥進行指導一下。


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

-Advertisement-
Play Games
更多相關文章
  • 題目描述 Tiger最近被公司升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。 Tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價或者是其他情況的時候,營業額會出現一定的波動,當然一定的波動是 ...
  • inline函數的作用繼承了巨集定義的優點,沒有了參數壓棧,代碼生成等一部分操作,並且摒棄了沒有檢查編譯規則的缺點; 另外要註意,內聯函數一般只會用在函數內容非常簡單的時候,這是因為,內聯函數的代碼會在任何調用它的地方展開,如果函數太複雜,代碼膨脹帶來的惡果很可能會大於效率的提高帶來的益處。內聯函數最 ...
  • 配套視頻詳解 繼承子類與父類的關係 繼承子類與父類的關係代碼演示 繼承方法的覆蓋 方法覆蓋原則 一、繼承編寫過程 二、子類可以繼承父類當中哪些內容 可以自行把修飾符換下, 然後查看子類能不能訪問 詳細演示在視頻當中 三、方法覆蓋 四、方法覆蓋原則 五、判斷方法是否是覆蓋 六、什麼時候使用覆蓋 七、方 ...
  • 配套詳解視頻 繼承思想 繼承extends 一、引出繼承 二、什麼是繼承 從已有類中,派生出新的類,新的類中吸收已有類當中的狀態和行為,並能擴展出新的能力。 Java繼承是使用已有類作為基礎,建立新的類。 三、如何表示繼承 代碼-軟體在群文件共用當中 ...
  • 個人覺得,比如登錄的時候一般都會用session持久化保證登錄時間,你在session過期之前的這段時間訪問或者說有刷新的話,它就會從你當前刷新訪問的時間開始計算過期時間,如果沒有動作的話,到了過期時間網頁就自動退出登錄了;而保持到資料庫就是為了輔助完成驗證功能; ...
  • 使用jdbcTemplate 原理是把載入驅動Class.forName("com.mysql.jdbc.Driver"); 和連接資料庫Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sw_datab ...
  • ...
  • 1、cookie和session cookie可以單獨工作 cookie也可以和session配合來用 每一個瀏覽器都會有一個cookie:{} 瀏覽器第一次訪問伺服器的時候cookie是空的 伺服器需要讓客戶端保存一些數據cookie {"sessionID":"隨機字元串"},當下次請求的時候就 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...