OOP面向对象2

封装

封装的意义就是该漏的漏,该藏的藏

  • 程序的设计要追求高内聚,低耦合 高内聚就是类的内部数据操作细节自己完成,低耦合就是尽量暴露少的方法给外部

而封装就是数据的隐藏

  • 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口访问,这称为信息隐藏
  • 对于封装,只需要记住私有和get、set就行了

在这里插入图片描述

上图右边就是如何封装一个类,然后左边就是调用这个类里的方法进行属性的更改,属性被private修饰符修饰就会变成私有,不能被外部直接访问,这个私有属性在封装中很常见

继承

继承的本质就是对某一批类进行抽象,使用extends关键字进行继承的表示

  • 继承是类与类之间的关系
  • 继承的关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父类
  • java中只有单继承,没有多继承

在这里插入图片描述

可以看到最右边的是Teacher类,继承了Person类,然后父类中有一个say方法,子类中并没有,但是对子类实例化依旧可以使用父类的方法,所以这就是继承的作用,子类可以完全使用父类的方法(这里指的不是那些被私有修饰符修饰的方法,一般的方法都是public,因为要对外使用)

在这里插入图片描述

看到左边,显示类型层次,可以发现Person类有两个子类就是我们写的,但是还有一个父类Object类,这个类是所有类的父类,不写即表示默认继承,所以想那些没有定义但是可以使用的方法是来自于这个Object类,比如==equals()==方法

super

super这个关键字是在继承中使用的,表示对父类的某些东西进行引用,还是看代码理解吧

在这里插入图片描述

可以看到在无参构造函数中是先执行了父类的无参构造,所以在子类的无参构造中默认是有父类的无参构造方法的super(),只是没有显示出来,至于理解的话多写代码就知道这个关键字怎么用了,这里再说一些注意点

  • super调用父类的构造方法,必须放在构造方法里的第一行
  • super关键字只能出现在子类的方法里或者构造方法里
  • super和this不能同时调用构造方法(this的作用就是表示当前对象)

构造方法

  • super() 父类的构造
  • this() 本类的构造

方法重写

方法重写上一个就提到了,方法重写是在继承关系里面的,子类去重新写父类的方法,和属性无关

注意一点

  • 我们在写方法的时候,应尽量避免静态方法,因为在方法重写如果是静态方法的话,那方法就只和引用类型有关,所以暂时记住,初学时,我们在写方法时除特殊情况外,都应尽量避免静态方法的创建,毕竟学的是面向对象,总得创建对象来完成一些列的操作吧,static关键字比较特殊,即使在以后的学习中也要时刻关注这个关键字

在这里插入图片描述

多态

一个对象的实际类型是确定的,但是指向的引用类型就可能不一样了,这个就是多态的一种引用

在这里插入图片描述

在继承关系中,引用类型的定义可以是该类的父类,所以这就造成了多态的一种形式,但是不能使用其他引用类型,比如String,因为没什么关系

在这里插入图片描述

在这里插入图片描述

看看输出结果,这里就小结一下

  • 子类重写父类的方法,无论引用类型是子类还是父类,调用的方法都是子类的,如果没有重写,那引用类型是父类的就是调用父类的那个方法
  • 所有类都继承Object类,所以多态的形式可以全部以Object为引用类型
  • 向上转换是不需要强转的,但是会损失精度,比如引用类型为父类,实际类型为子类,那么可能子类的一些方法会丢失
  • 向下转换是需要强转的,比如你父类的想要使用子类的方法,就要强转为子类才行

这部分内容的一些细节收录在java扩展里,这里只作为一些基础

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不敢懈怠伪装起来

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

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

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

打赏作者

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

抵扣说明:

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

余额充值