JAVA学习9

news2024/12/23 11:45:06

目录

一.继承

1.继承的原理:

2.继承的细节:

3.继承的本质:

二.super的使用:

1.基本介绍:

2.注意事项与使用细节:(1)访问父类的属性super.属性名,但不能访问父类的private属性

3.super和this的比较:

三.方法的重写(覆盖):

1.基本介绍:

2.使用细节:


一.继承

1.继承的原理:

当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来继承父类即可。

继承的基本语法:

class 子类 extends 父类{

(1)子类会自动拥有父类定义的属性和方法

(2)父类又叫超类、基类。

(3)子类又叫派生类。

}

2.继承的细节:

(1)子类继承了所有的属性和方法,但是私有属性和方法不能在子类直接访问,要通过父类提供的公共的方法去访问。

(2)子类必须调用父类的构造器,完成父类的初始化。当创建子类对象的时候,不管使用子类的·哪个构造器,如果父类没有提供无参构造器,则必须在子类的构造器中使用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过。

(3)如果希望调用父类的某个构造器,则显式的调用一下:super()

(4)super()必须放在子类构造器的最前面,super()只能在构造器中使用

(5)super()和this()都要放在构造器的第一行,因此这两个方法不能共存于一个构造器。

(6)所有的类都是Object的子类,父类构造器的调用不限于直接父类,将一直向上追溯到Object类(顶级父类)。

(7)子类在Java中最多只能继承一个父类(直接继承),不能滥用继承。

3.继承的本质:

当子类继承父类时,按照查找关系来返回信息,首先查看子类是否有该属性,如果子类有这个属性且可以访问,则返回信息。如果子类没有这个属性,就看父类有没有这个属性(如果子类有这个属性且可以访问,则返回信息)。

public class Extendstheory{
      public static void main(String[] args){
      Son son = new Son();
      //按照查找关系来返回信息,首先查看子类是否有该属性,如果子类有这个属性且可以访问,则返回信息。如果子类没有这个属性,就看父类有没有这个属性(如果子类有这个属性且可以访问,则返回信息)。
      System.out.println(son.name);//大头儿子
      System.out.println(son.age);//39
      System.out.println(son.hobby);//旅游  
      System.out.println(son.getAge());//2024     
      }
}
class Grandpa {
      String name = "大头爷爷";
      String hobby = "旅游";
}
class Father extends Grandpa {
      String name = "大头爸爸";
      int age = 39;
      privare int years = 2024;
      public int getAge() {
      return age;
      }
}
class person extends Father{
      String name = "大头儿子";
} 

二.super的使用:

1.基本介绍:

super代表父类的引用,用于访问父类的属性、方法、构造器。

2.注意事项与使用细节:
(1)访问父类的属性super.属性名,但不能访问父类的private属性

(2)访问父类的方法super.方法名(参数列表),不能访问父类中的private方法

(3)访问父类方法的构造器super(参数列表),只能放在构造器的第一句,只能出现一句

(4)super类的访问不限于直接父类,如果多个基类中都有同名的成员,使用super访问遵循就近原则。

3.super和this的比较:

三.方法的重写(覆盖):

1.基本介绍:

方法覆盖就是子类有一个方法和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的方法。

2.使用细节:

(1)子类和父类的方法名、参数必须一致

(2)子类方法的返回类型要和父类的返回类型一致,或者是父类返回类型的子类,比如父类返回类型是Object,子类返回类型是String。

(3)子类方法不能缩小父类方法的访问权限 public>protected>默认>private

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速从0-1完成聊天室开发——环信ChatroomUIKit功能详解

聊天室是当下泛娱乐社交应用中最经典的玩法,通过调用环信的 IM SDK 接口,可以快速创建聊天室。如果想根据自己业务需求对聊天室应用的 UI界面、弹幕消息、礼物打赏系统等进行自定义设计,最高效的方式则是使用环信的 ChatroomUIKit 。 文档地址…

个税计算器(Python)

任务描述 目前我国个人所得税计算公式如下: 应纳个人所得税税额 (工资薪金所得 -五险一金 - 个税免征额)适用税率-速算扣除数 个税免征额为5000元/月,2018年10月1日起调整后,也就是2018年实行的7级超额累进个人所得税税率表如下&#xff1…

【组合回溯】Leetcode 131. 分割回文串

【组合回溯】Leetcode 131. 分割回文串 解法 切割组合回溯 ---------------🎈🎈131. 分割回文串 题目链接🎈🎈------------------- 解法 切割组合回溯 全局变量:result存储所有path的集合,path用来记录切…

新!PCA+DBO+K-means聚类,蜣螂优化算法DBO优化K-means,适合学习,也适合发paper。

PCADBOK-means聚类,蜣螂优化算法DBO优化K-means,适合学习,也适合发paper。 一、 蜣螂优化算法 摘要:受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发,提出了一种新的基于种群的优化算法(Dung Beetle Optimizer, DBO…

拜占庭将军问题相关问题

1、拜占庭将军问题基本描述 问题 当我们讨论区块链共识时,为什么会讨论拜占庭将军问题? 区块链网络的本质是一个分布式系统,在存在恶意节点的情况下,希望 整个系统当中的善良节点能够对于重要的信息达成一致,这个机…

8.6 Springboot项目实战 Spring Cache注解方式使用Redis

文章目录 前言一、配置Spring Cache1. @EnableCaching2. 配置CacheManager3. application.properties配置二、使用注解缓存数据1. 使用**@Cacheable** 改造查询代码2. 使用**@CacheEvict** 改造更新代码前言 在上文中我们使用Redis缓存热点数据时,使用的是手写代码的方式,这…

每日学习笔记:C++ STL 的forward_list

定义 特点 操作函数 元素查找、移除或安插 forward_list::emplace_after arg...指的是元素构造函数的参数&#xff08;0~N个&#xff09; #include <iostream> #include <memory> #include <list> #include <forward_list> using namespace std;class…

【数据结构】深入理解AVL树:实现和应用

AVL树是一种自平衡的二叉搜索树&#xff0c;它能够保持良好的平衡性质&#xff0c;使得在最坏情况下的时间复杂度也能保持在对数级别。本文将深入介绍AVL树的原理、实现和应用&#xff0c;并通过示例代码演示其基本操作。 文章目录 什么是AVL树&#xff1f;AVL树的实现在AVL树…

Python主成分分析和聚类分析

项目背景 最近遇到这样一个需求&#xff1a; Python主成分分析和聚类分析&#xff1f;商业场景你数据不变展示&#xff0c;主要是用来划分用户等级&#xff0c;用来人文关怀。 基本概念 主成分分析&#xff08;PCA&#xff09;是一种常用的数据降维技术&#xff0c;通过线性变…

力扣巧题:翻倍链表的元素

此题的巧妙之处在于题目数据非常大只能在原链表中解决&#xff0c;遇到进一的问题如果尽早判断就不会有问题&#xff0c;而且第一位的判断非常巧妙 struct ListNode* doubleIt(struct ListNode* head){struct ListNode* Node (struct ListNode*)malloc(sizeof(struct ListNod…

ts版本微信小程序在wxml保存文件不刷新页面的解决办法

将project.config.json中的skylineRenderEnable改为false "skylineRenderEnable": false

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:TextClock)

TextClock组件通过文本将当前系统时间显示在设备上。支持不同时区的时间显示&#xff0c;最高精度到秒级。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 TextClock(options?…

【数据库】基础操作

系列文章目录 &#x1f308;座右铭&#x1f308;&#xff1a;人的一生这么长、你凭什么用短短的几年去衡量自己的一生&#xff01; &#x1f495;个人主页:清灵白羽 漾情天殇_计算机底层原理,深度解析C,自顶向下看Java-CSDN博客 ❤️相关文章❤️&#xff1a;清灵白羽 漾情天…

118. 杨辉三角(Java)

这里写目录标题 题目描述&#xff1a;输入:输出:代码实现&#xff1a; 题目描述&#xff1a; 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 输入: numRows 5输出: [[1],[1,1],[1…

软件功能测试内容有哪些?湖南长沙软件测评公司分享

软件功能测试主要是验证软件应用程序的功能&#xff0c;且不管功能是否根据需求规范运行。是通过给出适当的输入值&#xff0c;确定输出并使用预期输出验证实际输出来测试每个功能。也可以看作“黑盒测试”&#xff0c;因为功能测试不用考虑程序内部结构和内部特性&#xff0c;…

24.第12届蓝桥杯省赛真题题解

A.空间&#xff08;100%&#xff09; 计算机存储单位计算 1TB2^10 GB 1GB2^10 MB 1MB2^10 KB 1KB2&10 B 1B8 bit(bit位二进制的最小的存储单位) #include <iostream> #include <cmath>using namespace std; //2^28B 2^2int main(){std::ios::sync_with_stdio…

MySQL初阶3——事务的初步理解

目录 一、事务的引入⭐⭐⭐⭐⭐ 1. 为什么需要事务 2. 事务的四大特性 二、事务的具体细节⭐⭐⭐⭐⭐ 1. 事务在并发会遇到的三种常见问题 2. MySQL事务隔离的四种级别 三、MySQL中如何开启事务 四、补充 很荣幸与诸君在篇文章“相遇”&#xff0c;祝大家身体健康&…

UnityShader:IBL

效果&#xff1a; 实现&#xff1a; Shader "MyShader/IBL" {Properties{_CubeMap ("环境贴图", Cube) "white" {}_Exposure("曝光",float)1.0_Color("颜色",color)(1,1,1,1)_NormalMap("法线贴图",2d)"bu…

JS仿淘宝滚动刷新简单实现

废话不多说&#xff0c;直接上代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title><style>* {margin: 0;padding: 0;}.box {width: 24.5%;height: 200px;float: left;}.box>…

#QT(事件--快捷键保存文件)

1.IDE&#xff1a;QTCreator 2.实验&#xff1a;QEvent,QMouseEvent,QKeyEvent。 在上一个文本编辑器的基础上实现快捷键"ctrls"保存文件。 3.记录 &#xff08;1&#xff09;查看QEVENT的有效事件 &#xff08;2&#xff09; 所有时间均继承于QEvent&#xff0c;任…