【Java零基础入门篇】第 ④ 期 - 继承(二)

简介: Java零基础入门

博主:命运之光
专栏:JAVA入门

JAVA.gif

学习目标
1.掌握继承性的主要作用、实现、使用限制;
2.掌握this和super的含义及其用法;
3.掌握方法覆写的操作;
4.掌握final关键字的使用;
5.掌握类变量、实例变量和局部变量的含义和用法;
6.掌握static和final修饰符的作用;


关键字this和super

继承关系中类成员的使用

Java中使用变量的规则

  • 遵循“就近原则”,局部位置有就使用,没有就去本类的成员位置找,有就使用,没有就去父类的成员位置找,有就使用,没有报错。

关键字this

本质: 对象

用法:从本类开始找

关键字super

本质: 父类内存空间的标识

用法:从父类开始找

在Java中专门提供了一个super关键字用于访问父类的成员。例如访问父类的成员变量、成员方法和构造方法

可以在子类的方法或构造方法中,通过“super.属性”或”super.方法”的方式,显式的调用父类中声明的属性或方法。

在Java类中使用super来调用父类中的指定操作:

  • super可用于访问父类中定义的属性(成员变量)
  • super可用于调用父类中定义的成员方法
  • super可用于在子类构造器中调用父类的构造器

🍓🍓调用父类的构造方法(构造器)

格式:  super();或  super(参数列表);

①当父类没写任何构造方法(或只写了无参构造方法)时,子类会默认调用父类的无参构造方法。

②当父类中没有空参数的构造器时,子类的构造器(每一个)都必须通过super( 参数列表 )语句指定调用父类中相应的某一个带参构造器,且必须放在构造器的首行否则编译出错

③父类既有带参构造器又有无参构造器,那么在子类构造器的首行没有显示的声明super(形参列表)”,默认调用的是父类中空参的构造器:super();

注意:

  • 当子父类出现同名成员时,可以用super表明调用的是父类中的成员
  • super的追溯不仅限于直接父类(即可以是父类的父类……)
  • 子类继承父类时,并没有继承父类的构造方法,但子类构造方法可以调用父类的构造方法;
  • super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识;

🍓🍓🍓this和super的区别

继承时的覆盖与隐藏

隐藏

1.子类和父类定义了同名属性

内存里实际有2个同名变量,默认使用子类的属性,这种现象叫做子类变量隐藏了父类同名变量。

2.子类和父类定义了同名方法

子类内存里只有子类定义的方法不再有父类定义的方法,这种现象叫做“覆盖”,也叫“方法覆写

覆盖

🍓🍓在继承关系中,子类从父类中继承了可访问的方法,但有时从父类继承下来的方法不能完全满足子类需要,这时就需要在子类方法中修改父类方法,即子类重新定义从父类中继承的成员方法,这个过程称为方法重写或覆盖(覆写)

🍍🍓🍎方法重载方法重写的区别:

方法重载是在同一个类中,方法重写是在子类与父类中。

方法重载要求:方法名相同,参数个数或参数类型不同。

方法重写要求:子类与父类的方法名、返回值类型和参数列表相同。

访问控制符

🍓🍓java一共定义了四种访问权限控制符private、默认权限(default)、protectedpublic。用来保护对类、变量、方法构造方法的访问。

  • public : 对所有类可见。使用对象:类、接口、变量、方法;
  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法;
  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类);
  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public > protected > default(缺省) > private

注:方法重写时必须考虑权限,即被子类重写的方法不能拥有比父类方法更加严格的访问权限

相关文章
|
3月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
74 3
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
55 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
27天前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
2月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
115 1
|
2月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
85 5
|
2月前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
37 1
|
2月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
51 3
|
3月前
|
Java
Java中的多线程编程:从入门到精通
本文将带你深入了解Java中的多线程编程。我们将从基础概念开始,逐步深入探讨线程的创建、启动、同步和通信等关键知识点。通过阅读本文,你将能够掌握Java多线程编程的基本技能,为进一步学习和应用打下坚实的基础。