Java 三大特性

抽象:就是【忽略】一个主题中【与当前目标无关的】那些【方面】,以便更充分地【注意与当前目标有关】的方面。抽象并【不打算了解全部问题】,而只是【选择】其中的【一部分】,暂时【不用关注其他细节】。
比如,我们要设计一个【学生成绩管理系统】,考察学生这个对象时,我们【只关心】他的【班级、学号、成绩等】,而【不】用去关心【他的身高、体重这些信息】。
抽象包括【两个方面】,【一是过程抽象】,【二是数据抽象】。
过程抽象:是指任何一个【明确定义功能的操作】都可被使用者看作【单个的实体】看待,尽管这个操作实际上可能由一系列更低级的操作来完成。

数据抽象:定义了【数据类型】和【施加于该类型对象上的操作】,并限定了对象的值只能通过使用这些操作修改和观察。


封装:是面向对象的特征之一,是对象和类概念的主要特性。封装是【把过程和数据包围起来】,【对数据的访问只能通过已定义的接口】。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列【完全自治、封装的对象】,这些对象通过一个受保护的接口访问其他对象。一旦【定义了一个对象的特性】,则【有必要决定这些特性的可见性】,即哪些特性对外部世界是可见的,【哪些特性用于表示内部状态】。在这个阶段定义对象的接口。【通常,应禁止直接访问一个对象的实际表示】,而【应通过操作接口访问对象】,这称为【信息隐藏】。事实上,【信息隐藏】是用户【对封装性的认识】,【封装】则【为信息隐藏提供支持】。封装【保证了模块具有较好的独立性】,使得【程序维护修改较为容易】。对【应用程序的修改仅限于类的内部】,因而可以【将应用程序修改带来的影响】减少到【最低限度】。


继承:是一种联结【类的层次模型】,并且【允许和鼓励类的重用】,它提供了一种【明确表述共性】的方法。对象的一个【新类可以从现有的类中派生】,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。【派生类】可以从它的基类那里【继承方法和实例变量】,并且类【可以修改或增加新的方法使之更适合特殊的需要】。这也体现了大自然中一般与特殊的关系。【继承性很好的解决了软件的可重用性问题】。比如说,所有的Windows应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。


多态:多种状态,是指【允许不同类的对象对同一消息作出响应】。多态性包括【参数化多态性】和【包含多态性】。多态性语言【具有灵活、抽象、行为共享、代码共享的优势】,很好的解决了应用程序【函数同名问题】、【实现替换问题】、【可扩充性问题】。
多态有【两种表现形式】:【重载和覆盖】。
覆盖Overriding是【父类与子类】之间【多态性的一种表现】,重载Overloading是【一个类中多态性】的一种表现。



总结:抽象封装继承多态之间的关系

1、抽象:【找出】我们要解决的【问题】
2、封装:【解决问题】(包括数据封装和过程封装)
3、继承:【提高解决方案】的【重用性】
4、多态:【提高解决方案】的【灵活性】


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值