Java_super关键字和方法重写(面向对象编程中级)四

一、super 关键字

1. 基本概念

  • super 关键字代表父类的引用,用于访问父类的属性、方法、构造器;
  • 基本语法:
    在这里插入图片描述
  • super的注意事项:
  1. super 虽然代表了父类的引用,但并不完全等同于父类,由于父类中私有变量/方法受到 private 的 限制,所以除了父类自身的方法外,其他所有类都不能访问。因此,super 关键字并不完全等同于父类自身;
  2. 而this 关键字代表了对象对自身的引用,类自身中的方法访问类中的私有变量/方法时不会受到 private 的 限制,因此this 关键字可以完全等同于对象自己。
  3. super 的访问不限于直接的父类,如果爷爷类和子类中有同名的成员,也可以使用 super 去访问爷爷类的成员;如果多个父类(上级类)中都有同名的成员,使用 super 访问时遵循就近原则。先是父类,再到爷类,再到祖宗类…
  • super的使用细节:
    在这里插入图片描述
  • 注意:
  1. 在子类的方法中访问父类的属性/方法时,若是使用 this.属性/方法,则会从子类的属性/方法开始查找,子类没有该属性/方法,再查找父类、爷类…
  2. 在子类的方法中访问父类的属性/方法时,若是使用 super.属性/方法,则会直接从父类的属性/方法开始查找,父类没有,再向爷类…查找;

2. super 和 this 的比较

  • 如下图所示:
    在这里插入图片描述

二、方法重写

1. 基本概念

  • 方法重写(覆盖):子类中有一个方法,和父类的某个方法的名称、返回类型、形参列表一样,就说子类的这个方法重写了父类的方法。
  • 为什么要引入方法重写:
  1. 当一个子类继承一个父类时,它同时继承了父类的属性和方法。子类可以直接使用父类的属性和方法,如果父类的方法不能满足子类的需求,则可以在子类中对父类的方法进行重写(或覆盖)。
  2. 在方法重写时,如果子类需要引用父类中原有的方法,可以使用 super 关键字。当子类重写父类方法后,在子类对象使用该同名方法时,会执行子类中重写的方法。

2. 注意事项和使用细节

如下图所示:
在这里插入图片描述

  • 对于第3点的解释:子类重写方法的修饰符 >= 父类方法的修饰符。

3. 方法重载和方法重写的比较

如下图所示:
在这里插入图片描述

总结

  • 本文是小白博主在学习B站韩顺平老师的Java网课时整理总结的学习笔记,在这里感谢韩顺平老师的网课,如有有兴趣的小伙伴也可以去看看。
  • 本文详细解释了 super 关键字和方法重写的概念与使用,并深入介绍了使用 super 关键字和方法重写的注意事项和细节,希望小伙伴们看后能有所收获!
  • 最后,如果本文有什么错漏的地方,欢迎大家批评指正!一起加油!!我们下一篇博文见吧!

版权声明:本文为weixin_45395059原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。