djn*_*jna 12
抽象是关注对象的一些关键特征,并故意忽略其他特征.例如,以下具有以下共同点:
Plane
Train
Automobile
Run Code Online (Sandbox Code Playgroud)
对,他们都有轮子!我们的对象模型有一个方法.
getNumberOfWheels()
Run Code Online (Sandbox Code Playgroud)
我们已经抽象出了我们关心这个特定问题的共同特征.当然,你可能期待一些其他抽象专注于numberOfPassengers()或speed(),但我们的想法是我们正在一些特定的问题领域工作,因此专注于某些特定的抽象.
在一个更现实的例子中,我们可能有Janitor,高级执行官,销售人员,经理等等.我们的抽象主要关注他们的付款.所以我们有
getSalary()
Run Code Online (Sandbox Code Playgroud)
现在我们看到一些有趣的事 对于看门人而言,薪水是按照计算的
hoursWorked * paymentPerHour
Run Code Online (Sandbox Code Playgroud)
对于销售人员而言
baseSalary + commision
Run Code Online (Sandbox Code Playgroud)
但是当我们看抽象getSalary()时,我们看不到那些细节,只能回答"工资是多少"的问题; 我们已经封装了薪水计算.
抽象:识别从外部看到的相关基本特征
封装:隐藏有关如何实现这些功能的详细信息
| 归档时间: |
|
| 查看次数: |
2174 次 |
| 最近记录: |