Java面向对象章节复习

面向对象章节,是Java学习的核心章节,而面向对象章节内最为关键的就是面向对象三大特性,极为重要,本文章多是针对这个学习内容所做的补充与复习。



类与对象


类是对某一事物的抽象描述,而对象是这类事物的具体实例。 如同空调可以被抽取为一个类,类需要制定这个类所具有的共同特征,而这个类的对象就需要给定具体的参数了,如空调的品牌、价格、功率、尺寸等等。


构造方法

需要知道的是,在编写一个类的构造方法时,构造方法也会构造方法的重写。


因为方法重写需要满足的条件是:

  1. 在同一个类中。
  2. 方法名相同
  3. 形参列表不同

而构造方法也是一个特殊的方法,并且恰好都满足这些条件,所以在编写构造方法时,需要避免传入的形参类型重复。


而构造方法还有一个小知识点就是,如果一个类没有编写任何构造方法,那么JVM会自动添加上一个空参构造方法,但是如果在一个类中已经编写了有参构造,但是没有编写无参构造,那么JVM不会自动添加上一个无参构造,需要自行编写。




1.封装

面向对象三大特征之一,类的封装一般使用权限修饰符private,完成封装。

封装比较重要的一点就是,对象代表什么,就得封装对应的数据,并且提供对应的方法。
(ps:这句话的出自,b站黑马程序员的Java初阶教程中)

比如将门抽取成一个类,并且创建一个门的对象。如果此时有一个类 : 人,需要实现关门这个操作,那么请问关门这个方法是放置在人这个类中,还是门这个类中呢?
答案是放置在门这个类中。


门需要提供门的属性与关门的方法,而人调用了这个关门的方法。 属于是门自己将自己关闭了。




2.继承


面向对象的三大特征之一,继承的意义在于能够在类与类之间形成组合的的关系,并且能减少重复逻辑的代码编写。


继承关系使用entends实现。 子类通过继承能够得到父类的属性与方法,并且子类还能在父类的基础上添加属于自己的属性与方法。


子类通过继承关系能够得到父类所具有的属性与方法,但是父类所有的内容都能被子类继承吗?
不是的,以下的几点,就是父类不能被子类继承的东西。

1.父类当中被private修饰了的属性与方法可以被子类继承,但是子类无法使用,类似于伪继承

	因为被权限修饰符private了的属性与方法,外界是无法直接访问的。子类也同理

2.父类的构造方法不能被子类继承。

因为构造方法的定义决定了它不能被子类继承,构造方法的定义是:无返回值且方法名与类名一致。

以上两点是子类继承父类需要了解的地方。




3.多态

面向对象的三大特征之一,多态可以提高程序的可维护性与拓展性,一般作用在方法的形参,父类形参能够接收任意的子类变量。


父类引用创建子类对象后

  1. 调用成员变量规则:编译看左边,运行也看左边。编译时会去父类中查找这个成员变量,如果没有 则编译失败。
  2. 调用成员方法规则:编译看左边,运行看右边。多态父类无法调用子类中的特有方法,就是说除了被重载的方法外,其他的都无法调用,除非进行强制类型转换。

多态创建的父类引用指向子类实例,如果想要调用子类特有的方法或属性,需要进行强制类型转换。




总结

上述内容是针对之前的文章,对面向对象的三大特性的补充,具体的讲解还在前几篇文章当中。上述观点,如有错误,还请指出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值