类的继承和方法重载

news2024/11/17 0:56:43

想象一下,有一个相亲想爱的一家人家族树。在这个家族树中,有一个祖先(父类),它拥有一些基本的特征和行为,比如家族的传统、姓氏、某些共同的技能或知识。

现在,这个祖先有多个后代(子类),每个后代都继承了祖先的基本特征和行为,就像孩子们继承了父母的姓氏和一些遗传特征。但是,每个后代也可以有自己的独特特征和行为,就像每个孩子都有自己的个性和特长。

而在java中,就叫做类的继承。

class Child extends Parent{}

下面我们来创建子类对象来观察构造方法的执行顺序

运行结果如下

Object类

用户在创建一个类时,除非已经指定它从其他类继承,否则它就是从java.lang.Object类继承而来的

如String类、Integer类等都是继承自Object类

除此之外,自定义的类也是继承自Object类的

getClass()方法

该方法用于取得类的名字

getClass().getname();

 toString方法

将一个对象返回为字符串形式,会放回一个String实例

可以将getClass()方法和toString()方法联合使用

equal()方法

用于比较两个对象的实际内容

以下用根据身份证号判断是否为同一人来展示equal()和"=="的区别

以下为运行结果

从这个结果我们可以看出,虽然"tom"和"汤姆"名字不同,但是身份证是相同的,因此,equals()方法判断这两个对象实际时同一个,但"=="运算符无法做出有效的判断.

对象类型的转换

向上转型

不过在向上转型中,父类的对象无法调用子类独有的属性或者方法

向下转型

注意:

1)两个没有继承关系的对象不可以进行向上转型或向下转型

2)父类对象可以强制转换为子类对象,但有一个前提:这个父类对象要先引用这个子类对象

instanceof关键字

myobject instanceof ExampleClass

myobject:某类的对象引用

ExampleClass:某个类

 使用instanceof关键字的表达式返回值为布尔值

如果返回true则说明myobject对象为ExampleClass的实例对象

方法的重载

方法的重载就是在同一个类中允许存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可.

final关键字

凡是被final关键字修饰的内容都是不可改变的

final double PI = 3.14;

如果在程序里再次对该常量进行赋值,编译器将不会接受

final方法

将方法定义为final类型,可以防止子类修改父类的定义与实现方法,同时定义为final的方法执行效率要高于非final方法。

private final void test(){
    ...
}

final类

定义为final的类不能被继承

final 类名{}

record类

在上文中,都是使用class关键字定义类的,下面讲解另一种用于定义类的关键字:record

public record Clock(int hours,int minutesperhour){
    public int getHours(){
        return this.hours;
    }
}

    public int getMinutesperhour(){
        return this.minutesperhour;
    }
}

 

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

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

相关文章

vue3模板语法以及attribute

模板语法​ Vue 使用一种基于 HTML 的模板语法,使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上。所有的 Vue 模板都是语法层面合法的 HTML,可以被符合规范的浏览器和 HTML 解析器解析。 在底层机制中,Vue 会将模板编译成高度优化…

【每日刷题】Day49

【每日刷题】Day49 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 110. 平衡二叉树 - 力扣(LeetCode) 2. 501. 二叉搜索树中的众数 - 力扣&…

XSS+CSRF攻击

一、前言 在DVWA靶场的XSS攻击下结合CSRF攻击完成修改密码 也就是在具有XSS漏洞的情况下实施CSRF攻击 二、实验 环境配置与上一篇博客一致,有兴趣可以参考CSRF跨站请求伪造实战-CSDN博客 首先登录DVWA,打开XSS模块 name随便输入,message…

.lib .a .dll库互转

编译 mingw工具,gendef.exe转换dll为a,reimp转换lib为adlltool.exe --dllname python38.dll --def python38.def --output-lib libpython38.adlltool -k -d crypto.lib -l crypto.a 创作不易, 小小的支持一下吧!

【数据结构与算法 经典例题】求带环链表的入口

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:数据结构与算法刷题系列(C语言) 期待您的关注 目录

DragonKnight CTF2024部分wp

DragonKnight CTF2024部分wp 最终成果 又是被带飞的一天,偷偷拷打一下队里的pwn手,只出了一题 这里是我们队的wp web web就出了两个ez题,确实很easy,只是需要一点脑洞(感觉), ezsgin dirsearch扫一下就发现有ind…

人工智能为犯罪地下世界带来了巨大的生产力提升

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

使用docker完整搭建前后端分离项目

1、docker的优势,为啥用docker 2、docker的核心概念 镜像【Image】- 只读模板 容器【Container】- 运行镜像的一个外壳,相当于一个独立的虚拟机 仓库【repository】- 镜像的管理工具,可公开,可私有;类似git仓库 3、c…

考研数学|线代跟谁好,李永乐,汤家凤还是张宇?

如果线代基础不好,那建议开刚开始的时候听汤家凤老师的线代课程 汤家凤教授的线性代数课程常被忽视,多数人倾向于去听李永乐。然而,在我考研的过程中,我曾尝试听李永乐教老师的课,可能是由于我自身基础薄弱&#xff0…

基于Vue的前端自定义询问弹框与输入弹框组件的设计与实践

基于Vue的前端自定义询问弹框与输入弹框组件的设计与实践 摘要 随着技术的不断进步,前端开发面临越来越多的挑战,其中之一就是如何有效管理复杂的业务逻辑和用户体验。传统的整块应用开发方式在面对频繁的功能变更和用户体验优化时,往往显得…

各大模型厂商API使用:百度、阿里、豆包、kimi、deepseek

百度ERNIE(支持requests接口) ERNIE Speed、ERNIE Lite免费 免费测试下来模型ernie_speed输出吞吐量计算20-30来个,“{length/cost} tokens/s” 输出总长度/耗时 https://qianfan.cloud.baidu.com/ 文档: https://cloud.baidu.com/doc/WENXINWORKSHOP/s/dltgsna1o a…

数据结构——链式二叉树知识点以及链式二叉树数据操作函数详解!!

引言:该博客将会详细的讲解二叉树的三种遍历方法:前序、中序、后序,也同时会讲到关于二叉树的数据操作函数。值得一提的是,这些函数几乎都是建立在一个函数思想——递归之上的。这次的代码其实写起来十分简单,用不了几…

【C++】二分查找:在排序数组中查找元素的第一个和最后一个位置

1.题目 难点&#xff1a;要求时间复杂度度为O(logn)。 2.算法思路 需要找到左边界和右边界就可以解决问题。 题目中的数组具有“二段性”&#xff0c;所以可以通过二分查找的思想进行解题。 代码&#xff1a; class Solution { public:vector<int> searchRange(vect…

【传知代码】无监督动画中关节动画的运动表示-论文复现

文章目录 概述动画技术的演进原理介绍核心逻辑环境配置/部署方式小结 本文涉及的源码可从无监督动画中关节动画的运动表示该文章下方附件获取 概述 该文探讨了动画在教育和娱乐中的作用&#xff0c;以及通过数据驱动方法简化动画制作的尝试。近期研究通过无监督运动转移减少对…

【数据结构与算法 经典例题】判断链表是否带环

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;数据结构与算法刷题系列&#xff08;C语言&#xff09; 期待您的关注 目录

数据结构和算法|排序算法系列(三)|插入排序(三路排序函数std::sort)

首先需要你对排序算法的评价维度和一个理想排序算法应该是什么样的有一个基本的认知&#xff1a; 《Hello算法之排序算法》 主要内容来自&#xff1a;Hello算法11.4 插入排序 插入排序的整个过程与手动整理一副牌非常相似。 我们在未排序区间选择一个基准元素&#xff0c;将…

社交媒体数据恢复:聊天宝

请注意&#xff0c;本教程仅针对聊天宝应用程序&#xff0c;而非其他聊天软件。以下是详细的步骤&#xff1a; 首先&#xff0c;请确保您已经登录了聊天宝应用程序。如果您尚未登录&#xff0c;请使用您的账号登录。 在聊天宝主界面&#xff0c;找到您希望恢复聊天记录的对话框…

深度学习复盘与小实现

文章目录 一、查漏补缺复盘1、python中zip()用法2、Tensor和tensor的区别3、计算图中的迭代取数4、nn.Modlue及nn.Linear 源码理解5、知识杂项思考列表6、KL散度初步理解 二、处理多维特征的输入1、逻辑回归模型流程2、Mini-Batch (N samples) 三、加载数据集1、Python 魔法方法…

YOLOv8_pose预测流程-原理解析[关键点检测理论篇]

YOLOv8_seg的网络结构图在博客YOLOv8网络结构介绍_CSDN博客已经更新了,由网络结构图可以看到相对于目标检测网络,实例分割网络只是在Head层不相同,如下图所示,在每个特征层中增加了KeyPoint分支(浅绿色),通过两个卷积组和一个Conv卷积得到得到通道数为51的特征图,51表示…

python内置函数map/filter/reduce详解

在Python中&#xff0c;map(), filter(), 和 reduce() 是内置的高级函数(实际是class)&#xff0c;用于处理可迭代对象&#xff08;如列表、元组等&#xff09;的元素。这些函数通常与lambda函数一起使用&#xff0c;以简洁地表达常见的操作。下面我将分别解释这三个函数。 1. …