【面向对象】继承与封装
生活随笔
收集整理的這篇文章主要介紹了
【面向对象】继承与封装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
封裝要求只能通過對象接口中的操作才能訪問到對象的狀態。如果強迫封裝,它將帶來高度的數據獨立性,這樣所封裝的數據結構將來的變化就不會導致一定要修改已有的程序。
關于繼承與封裝,盡管它們同為面向對象的三大特性,但現實情況是,封裝與繼承和查詢能力是正交的,它不見得與這兩個特性一起折中考慮。
事實上,將所有的數據聲明為private也是不現實的。
繼承允許子類直接訪問protected屬性,它削弱了封裝。當計算涉及不同類的對象時,可能要求這些不同的類彼此是friend的或者讓元素具有包可見性,這就進一步破壞了封裝。
封裝是針對類的概念,不針對于對象。
事實上,大多數的OO程序設計環境中,一個對象不能對同一個類的另一個對象隱藏任何東西。
用戶基于SQL訪問數據庫中的數據,期望在查詢時直接查詢屬性,而不是被迫使用某些數據訪問方法,否則會導致查詢的表達更困難、更易出錯。
設計應用時,應該使它們達到期望的封裝水平,但還要與繼承、數據庫查詢以及計算需求相權衡。
總結
以上是生活随笔為你收集整理的【面向对象】继承与封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机组成原理】CISC和RISC
- 下一篇: delphi调用选择目录对话框