什麼是抽象
什麼是抽象
1. 抽象VS封裝
Abstraction is the concept of describing something in simpler terms, i.e abstracting away the details, in order to focus on what is important (This is also seen in abstract art, for example, where the artist focuses on the building blocks of images, such as colour or shapes). The same idea translates to OOP by using an inheritance hierarchy, where more abstract concepts are at the top and more concrete ideas, at the bottom, build upon their abstractions. At its most abstract level there is no implementation details at all and perhaps very few commonalities, which are added as the abstraction decreases.
As an example, at the top might be an interface with a single method, then the next level, provides several abstract classes, which may or may not fill in some of the details about the top level, but branches by adding their own abstract methods, then for each of these abstract classes are concrete classes providing implementations of all the remaining methods.
Encapsulation is a technique. It may or may not be for aiding in abstraction, but it is certainly about information hiding and/or organisation. It demands data and functions be grouped in some way - of course good OOP practice demands that they should be grouped by abstraction. However, there are other uses which just aid in maintainability etc.
來自於 https://stackoverflow.com/questions/8960918/encapsulation-vs-abstraction
相關文章
- 什麼是抽象類?怎麼定義?抽象
- 「譯」什麼是抽象語法樹抽象語法樹
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- 什麼是物件?什麼是抽象?怎麼理解物件導向的程式設計思想?物件抽象程式設計
- 抽象類和介面到底是什麼垃圾——秒懂抽象
- 資料結構中抽象資料型別是什麼?資料結構抽象資料型別
- 工廠模式和抽象工廠的區別是什麼?模式抽象
- 通過開發 Babel 外掛來理解什麼是抽象語法樹(AST)Babel抽象語法樹AST
- 什麼是DNS,什麼是HostsDNS
- 這是什麼這是什麼
- 什麼是分而治之?什麼是WBS?
- 什麼是WebAuthn、FIDO 是什麼?Web
- 什麼是cookie,什麼是sessionCookieSession
- ###什麼是Linux核心###什麼是MMULinux
- ITIL是什麼意思?ITIL是什麼?
- SNP全稱是什麼? SNP是什麼公司? SNP是什麼意思?
- 人是什麼?人生是什麼?人為什麼會變?
- 什麼是正向代理?什麼是反向代理?
- NLA是什麼?NLA的原理是什麼?
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是this
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- 什麼是API介面,具體是什麼意思?API
- IDFA、IMEI、OAID 是什麼,區別是什麼AI
- DRBD是什麼意思?優缺點是什麼?
- 什麼是SSRF攻擊?SSRF用途是什麼?
- GNU是什麼?和Linux是什麼關係?Linux
- 什麼是塊元素?什麼是行內元素?
- 什麼是Tornado?它的特點是什麼?
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是zoom?它有什麼作用?OOM
- 什麼是NLA,它有什麼用?
- 什麼是Django?有什麼用途?Django
- nginx 是什麼,能幹什麼?Nginx
- AI三重問:什麼是AI?什麼是AI模型?什麼是AI大模型?AI大模型
- 什麼是eval()?eval是用來幹什麼的?
- 什麼是CDN?CDN的技術原理是什麼?