【JAVA学习之路 | 基础篇】super关键字

简介: 【JAVA学习之路 | 基础篇】super关键字

1.需求

  • 子类继承父类以后,并且对父类的方法进行的重写,那么在子类中是否可以对父类被重写的方法进行调用?
  • 子类继承父类后,发现在子类中定义了和父类中同名的属性,是否可以在子类中区分二者?

2.super可调用的结构

  1. 属性
  2. 方法
  3. 构造器

3.super调用属性和方法

  • 子类继承父类后,我们可以在子类的方法或构造器中,调用父类声明的属性和方法(前提满足封装性).使用"super."调用父类的属性和方法.
  • 一般情况下,可以考虑省略"super.",但如果子类重写了父类的方法或者子父类出现了同名的属性,就必须使用"super.",显式调用父类被重写的方法或父类中声明的同名属性.

4.super调用构造器

  1. 子类继承父类时,并不会继承父类的构造器.只能通过"super(参数列表)"调用父类指定的构造器.
  2. 规定 : "super(参数列表)"必须声明在构造器的首行.
  3. 可以使用"this(参数列表)"可以调用本类重载构造器,且该只能出现在构造器的首行.故"super(参数列表)"和"this(参数列表)"只能二选一.
  4. 如果在子类中没有显式调用"this(参数列表)"和"super(参数列表)",那么该构造器会默认调用"super()",即父类的无参构造器.
  5. 子类的任何一个构造器,要么调用本类的重载构造器,要么调用父类的构造器.
  6. 如果子类没有显式调用父类构造器或本类构造器,而此时父类恰好又没有空参构造器(当父类中显式声明构造器,系统不再默认添加空参构造器),此时编译出错.
  7. (重点).我们在通过子类的构造器创建对象时,一定在构造过程中,直接或间接的调用父类构造器,直到调用了Obgect类中的构造器为止.也正因为调用父类的构造器,父类的属性和方法才会被加载到内存中,供子类对象使用.(即祖宗类先被加载到内存中,然后是父类,然后是子类)
相关文章
|
1天前
|
算法 Java
Java关键字与保留字:如何正确使用,让你的代码“飞”起来!
【6月更文挑战第15天】Java编程中,关键字如"class"、"int"用于特定语法,保留字可能未来成为关键字。理解其含义和用法至关重要,避免用作标识符以防止未来冲突。正确使用如"for"控制循环,优化代码能提升效率,使程序运行更流畅。避免保留字,如"goto"、"const",查阅文档确保合规性。通过代码优化,让程序效率更高,代码飞行在技术的云端。
|
1天前
|
Java 程序员
Java关键字:不只是简单的词汇,更是编程的“魔法咒语”!
【6月更文挑战第15天】Java关键字是编程的基石,如"class"定义类,"new"创建对象,"if/else"控制流程,"for/while"实现循环,"public/private"设置访问权限。示例展示了如何使用这些关键字来定义类、条件判断和循环,强调掌握关键字对提升代码效率至关重要。
|
2天前
|
缓存 安全 Java
深入理解java中的volatile关键字
深入理解java中的volatile关键字
6 1
|
3天前
|
Java
JAVA高级部分学习小结(2023.11.4)
JAVA高级部分学习小结(2023.11.4)
|
3天前
|
Java 编译器
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(二)
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(二)
8 0
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(二)
|
3天前
|
缓存 安全 Java
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(一)
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(一)
10 0
|
8天前
|
算法 Java 测试技术
滚雪球学Java(54):从零开始学习Java中的Math类,轻松解决数学难题
【6月更文挑战第8天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
15 0
滚雪球学Java(54):从零开始学习Java中的Math类,轻松解决数学难题
|
9天前
|
Java
Java线程学习经典例子-读写者演示
Java线程学习经典例子-读写者演示
8 0
|
9天前
|
存储 Java 程序员
Java入门——基本语法(注释、字面量、变量、使用变量的注意事项、关键字、标识符)
Java入门——基本语法(注释、字面量、变量、使用变量的注意事项、关键字、标识符)
16 2
|
11天前
|
Java 数据安全/隐私保护 C++
Java基础之关键字
Java基础之关键字
15 5