添砖Java之路(其八)——继承,final关键字

目录

继承:

super关键字:

方法重写:

继承特点:

继承构造方法:

final关键字:


继承:

意义:让类于类之间产生父类于子类的关系,子类可以直接使用父类中的非私有成员(包括方法与成员变量)  。

extends关键字就是定义声明父类。
格式:public class 子类 extends 父类。
 

对于基础的我就不赘述了,我们直接讲一些实用一点的操作。

super关键字:


举个例子

class Fu{int num=10;
}class Zi extends Fu
{int num=20;public void Fuc(){System.out.println(num);}
}public static void main(String[] args) {Zi z1=new Zi();z1.Fuc();}

这里面的主方法会打印什么呢?

如果我们想打印父类里的10我们需要用到super

结果就会变为10

可见super可以用来区分父子类里面的相同成员。


方法重写:


这里的方法重写与方法重载不一样哟!
当字父子类出现完全一摸一样的方法时, 在创建子类对象调用方法时会优先调用子类的方法的逻辑。这其实就是子类的方法对父类的方法进行了方法重写。且我们通过@override识别方法重写。
如:父子类都有Fuc方法
 

class Fu{int num=10;public void Fuc(){System.out.println("666");}
}class Zi extends Fu
{int num=20;@Override//如果这没报错就是方法重写public void Fuc(){System.out.println(555);}
}public static void main(String[] args) {Zi z1=new Zi();z1.Fuc();}

打印的是555

那我们怎么调用到父类的方法呢,就是用super
 

class Zi extends Fu
{int num=20;@Overridepublic void Fuc(){super.Fuc();System.out.println(555);}
}

两个方法都打印了。
其实方法重写作用就是我们对父类方法的修改和增强。
tip:私有的父类不能重写,子类在重写时访问权限一定要大于等于父类的方法。



继承特点:


Java继承只支持单继承,不支持多继承,但支持多层继承。

单继承,多继承:就是只能继承一个父类,不能继承多个类。
多层继承就像这个图一样:

继承构造方法:


构造方法不支持继承,所以构造方法需要自己写,子类在初始化之前需要对父类进行初始化,而且所有的类构造方法中有隐藏了一句supper()代码,这是用来调用父类的无参构造。
 

我们先简单理解一下super();

class Fu{int a;int b;public Fu() {}
}class Zi extends Fu
{int c;int d;public Zi() {}public  void Func(){System.out.println(""+a+b+c+d);}
}public static void main(String[] args) {Zi z1=new Zi();z1.Func();}

这次会打印什么呢?

可见他将abcd全部都初始化了,就证明了调用了子父类的无参构造。
 

那为什么说所有类都有super()呢?

其实所有的类,直接或间接的继承了object类,这里不多说,但是可以证明的是每个类都有除本身外其他的一些方法如:

final关键字:


对于final关键字其实就感觉像是c/c++里的const
特性:
1.修饰方法就表明是最终方法,该方法不能被重写。
2.修饰类就表明是最终类,该类不能被继承。
3.修饰变量说明是常量,不能再次被赋值(类似于const修饰的变量)。

tip:final修饰成员变量时不能被修饰默认值,说明就被修饰的变量一定要初始化,要么直接声明定义在一起,要么在构造方法里初始化。


final修饰的规范:全用大写,用下划线来分割单词如:MAX_NUM

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

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

相关文章

Seal^_^【送书活动第4期】——《Web渗透测试技术》

Seal^_^【送书活动第4期】——《Web渗透测试技术》 一、参与方式二、本期推荐图书2.1 前 言2.2 关于本书2.3 本书读者2.4 图书简介2.5 作者荐语2.6 编辑推荐2.7 目 录 三、正版购买 掌握Web渗透测试技术,提高Web应用安全性。 一、参与方式 1、关注博主的账号。 2、点…

Linux下Code_Aster源码编译安装及使用

目录 软件介绍 基本依赖 其它依赖 一、源码下载 二、解压缩 三、编译安装 四、算例运行 软件介绍 Code_aster为法国电力集团(EDF)自1989年起开始研发的通用结构和热力耦合有限元仿真软件。Code_aster可用于力学、热学和声学等物理现象的仿真分析&…

CVPR2022人脸识别Partial FC论文及代码学习笔记

论文链接:https://openaccess.thecvf.com/content/CVPR2022/papers/An_Killing_Two_Birds_With_One_Stone_Efficient_and_Robust_Training_CVPR_2022_paper.pdf 代码链接:insightface/recognition/arcface_torch at master deepinsight/insightface G…

基于lidar的多目标跟踪

文章目录 基本流程编译过程注意事项基本流程 基于雷达点云的目标追踪主要包括以下几个步骤: 点云预处理: 滤除噪点和无效点(如NaN值)进行平面分割,提取地面点云对剩余的点云进行聚类,得到可能的目标点云目标检测 对聚类后的点云进行分析,判断是否为有效目标可以利用目标的尺寸…

怎么转换音频?看这3款音频转换器

随着数字媒体的发展,音频文件在我们的日常生活中占据了越来越重要的地位。有时候在不同的应用场景里,无论是音乐、语音还是其他类型的音频内容,我们都需要对其进行转换以满足不同的需求。 本文将为您介绍3款常用的音频转换器,帮助…

Springboot+mybatis-plus+dynamic-datasource+继承DynamicRoutingDataSource切换数据源

Springbootmybatis-plusdynamic-datasource继承DynamicRoutingDataSource切换数据源 背景 最近公司要求支持saas,实现动态切换库的操作,默认会加载主租户的数据源,其他租户数据源在使用过程中自动创建加入。 解决问题 1.通过请求中设置租…

数据可视化训练第7天(json文件读取国家人口数据,找出前10和后10)

数据 https://restcountries.com/v3.1/all;建议下载下来,并不是很大 import numpy as np import matplotlib.pyplot as plt import requests import json #由于访问url过于慢;将数据下载到本地是json数据 #urlhttps://restcountries.com/v3…

MATLAB蚁群算法求解带时间窗的旅行商TSPTW问题代码实例

MATLAB蚁群算法求解带时间窗的旅行商TSPTW问题代码实例 蚁群算法编程求解TSPTW问题实例: 在经纬度范围为(121, 43)到(123, 45)的矩形区域内,散布着1个商家(编号1)和25个顾客点(编号为226),各个…

web入门练手案例(二)

下面是一下web入门案例和实现的代码,带有部分注释,倘若代码中有任何问题或疑问,欢迎留言交流~ 数字变色Logo 案例描述 “Logo”是“商标”的英文说法,是企业最基本的视觉识别形象,通过商标的推广可以让消费者了解企…

C语言(指针)2

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注收藏,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记&#x…

听说SOLIDWORKS科研版可以节约研发成本?

近几年来,政府越来越重视科研带动产业,绩效优良的产业技术研究院对于国家和地区的学术成果转化、技术创新、产业发展等具有不可忽视的促进和带动作用。研究院会承担众多新产业的基础研究工作,而常规的基础研究需要长期的积累,每个…

JAVA毕业设计141—基于Java+Springboot+Vue的物业管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的物业管理系统(源代码数据库)141 一、系统介绍 本项目前后端分离,分为管理员、员工、用户三种角色(角色权限可自行分配) 1、用户: …

高清模拟视频采集卡CVBS四合一信号采集设备解析

介绍一款新产品——LCC261高清视频采集与编解码一体化采集卡。这款高品质的产品拥有卓越的性能表现和丰富多样的功能特性,能够满足广大用户对于高清视频采集、处理以及传输的需求。 首先,让我们来了解一下LCC261的基本信息。它是一款基于灵卡技术研发的高…

LeetCode2095删除链表的中间节点

题目描述 给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。对于 n 1、…

深入探索Android签名机制:从v1到v3的演进之旅

引言 在Android开发的世界中,APK的签名机制是确保应用安全性的关键环节。随着技术的不断进步,Android签名机制也经历了从v1到v3的演进。本文将带你深入了解Android签名机制的演变过程,揭示每个版本背后的技术细节,并探讨它们对开…

浅谈下MYSQL表设计的几条规则

作为后端开发人员,避免不了和数据库打交道,可是我们怎么能够设计出高效,可维护,可扩展的数据库设计呢,在这里我总结了几个点,供大家参考。 在写之前,可能需要重复下数据库设计的范式原则&#…

水雨情监测系统—实时监测水位信息

TH-SW3水雨情监测系统是一种专门用于实时监测和收集水文气象数据的自动化系统。它能够实时获取区域内降雨和水情数据,并将其存储到数据库中进行分析处理,从而为防汛指挥人员提供及时准确的信息服务。 水雨情监测系统的主要功能包括实时监测水位、流速、流…

C++类与对象基础探秘系列(二)

目录 类的6个默认成员函数 构造函数 构造函数的概念 构造函数的特性 析构函数 析构函数的概念 析构函数的特性 拷贝构造函数 拷贝构造函数的概念 拷贝构造函数的特性 赋值运算符重载 运算符重载 赋值运算符重载 const成员 const修饰类的成员函数 取地址及const取地址操作…

MySQL文档_下载

可能需要:MySQL下载–》更新版本–》迁移数据库到MySQL 以下都不重要【只要确定好需要安装版本,找到对应的版本下载,安装,设置即可】 下载、安装: Determine whether MySQL runs and is supported on your platform…

Debian12安装后更换为国内镜像源,切换root用户,解决用户名不在sudoers文件中此事将被报告

选择Debian作为编程开发最佳Linux的理由: Debian是面向程序员的最古老,最出色的Linux发行版之一。Debian提供了具有.deb软件包管理兼容性的超稳定发行版。Debian为程序员提供了许多最新功能。因此,它具有一个特殊的编程空间。Debian是开发人员…