【韩顺平 零基础30天学会Java】对象的三大特性

本文深入探讨了面向对象编程的三大核心概念:封装、继承和多态。封装通过私有化全局变量和使用setter/getter方法确保数据安全;继承允许子类扩展父类特性,实现代码复用;多态则体现在类或接口的统一接口上,增强了软件的灵活性。此外,还介绍了动态绑定机制和instanceOf操作符的应用。
摘要由CSDN通过智能技术生成

📕封装

把从对象抽象出来的数据【全局变量】和对数据的操作【方法】封装在一起,数据被保护在其内部,程序隐藏实现细节。例如各种排序算法的封装,你不需要知道算法如何实现,只需要在意算法的时间复杂度和空间复杂度对你的程序的影响,还有线程锁对数据的保护机制,你需要知道数据如何被保护吗?其实并不需要。
如何实现封装?

  1. 全局变量私有化
    你可以通过setget方法来操作数据,这样我们可以很好地保证数据的合理性以及可靠性。
  2. 提供实现业务流程或单个流程实现的方法
    我们可以将一个具体的业务流程或单个流程实现方式封装在一个方法里面,这样可以保证不用写重复性的业务流程,也保证流程的准确性。

📕继承

子类继承父类的特征(全局变量)和行为(成员方法),使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
我是把它理解为一个类对另一个类的扩展,你可以在子类去重写父类,但是整体来说父类私有化的全局变量和成员方法子类是没有的或无法被继承的,因此说成是扩展就显得不准确。

  • 父类内容被子类继承受到访问权限修饰符的限制。
  • 子类对父类进行重写是不受访问权限修饰符的限制。
  • 如果子类构造器没有使用super(),那么super会自动去调用父类的无参构造器;如果子类构造器使用了super(),那么super会根据参数去调用父类相应的构造器;如果父类有多个构造器,需要在子类用super()指明使用父类哪个构造器。
    super是对父类对象的引用
  • 子类只能继承一个父类,满足 is-a 的逻辑关系
  • 构造器里面this()的优先级高于super()的优先级。
thissuper区别
本类没有去父类找父类的属性属性
本类没有去父类找父类的方法成员方法
本类没有去父类找父类的构造器构造器
子类父类

📕多态

不同引用类型的类或接口继承统一的接口或类,那么这个类和接口拥有多态性,一般抽象abstract类和接口interface具有多态性。
多态的体现不仅是对象,也可以是方法、形参和数组。

  • 向上转型
    Object o = new String();
    
  • 向下转型
    String s = (String) o;
    

💡动态绑定机制

  • 当调用对象属性时,没有动态绑定机制,哪里声明那里使用。
  • 当调用对象方法的时候,方法会和对象的内存地址/运行类型绑定。
    个人认为就是作用域的问题

➕补充

instanceOf用于判断它左边的对象是否是它右边的类的实例(兼容性)。

如果你是无意刷到这篇文章并看到这里,希望你给我的文章来一个赞赞👍👍。如果你不同意其中的内容或有什么问题都可以在下方评论区留下你的想法或疑惑,谢谢你的支持!!😀😀

参考文献

  1. 【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hjhcos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值