【Java】构造器(构造方法)是否可以被重写?

2023-10-30

1. 前言

首先,构造器是不能被继承的,因为每个类的类名都不相同,而构造器名称与类名相同,所以根本谈不上继承

又由于构造器不能继承,所以就不能被重写。但是,在同一个类中,构造器是可以被重载的。

其实,在之前的一篇博客中,我已经记录了重载和重写的区别

这里我们再重复一下。

2. 方法重载(Overloading)

重载遵循 两同一不同

(1)方法在同一个类中;
(2)方法的名字相同;
(3)参数不同(个数、类型、顺序至少有一个不一样);
(4)返回类型可以相同也可以不同。

因此,每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。

3. 方法的重写(Override)

重写发生在继承关系中,当一个子类继承一父类,父类的某一个方法不再满足子类的具体特征,此时需要重新定义子类中定义的该方法。 需要满足一下条件:

1.参数列表(方法的名称,参数个数、类型)必须完全与被重写方法的相同;

2.返回类型必须完全与被重写方法的返回类型相同;

3.子类重写父类的函数的时候,函数的访问权限必须大于等于父类的函数的访问权限;(不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。)

4.父类的成员方法只能被它的子类重写。

5.声明为final的方法不能被重写。

6.声明为static的方法不能被重写,但是能够被再次声明。

7.子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。

8.子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法。

9.重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。

10.构造方法不能被重写。

11.如果不能继承一个方法,则不能重写这个方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Java】构造器(构造方法)是否可以被重写? 的相关文章

  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • Unix环境高级编程环境搭建

    在网上下载书中源代码 点此连接 点击打开链接 解压文件按 cd apue 3e make 在 make 的这个过程中一般会出错 后面显示 can t find lbsd 解决办法是添加 libbsd a 的静态链接库 指令如下 ub系统 s
  • echarts x轴 type=‘time‘

    关于x轴的设置在开发中是很常见的操作 如果只是设置一些定死的数据 那么就很简单 但是如果要设置某个可变的 且数量很多的x轴的话 不是一件很简单的事情了 比如我最近在工作中就遇到了 下面来和大家一起分享一下 开发需求如下 一个折线图表 默认显
  • 团队工具

    worktile Teambition 今目标 钉钉
  • 【机器学习】- 支持向量机

    预备知识 1 法向量 Wx b 0 w是什么 Wx b 0是直线方程 其中w表示法向量 法向量的指向由具体值确定 例如x y 2 0 法向量为 1 1 指向右上方 2 距离公式 3 函数间隔 当w确定的时候 距离的远近可以比较分子 也就是说
  • python实用脚本(一)—— 批量修改目标文件夹下的文件名

    本期主题 python重命名文件脚本 批量修改某一文件夹下的后缀名 脚本 1 代码 2 使用 3 简单解析 1 代码 usr bin python3 coding utf 8 批量修改文件扩展名 import argparse import
  • python语言整理

    目录 一 python 1 python的基础语法 1 python的介绍 2 python的注释方法 1 单行注释 2 多行注释 三个单引号 或者三个双引号 3 python的数据类型 4 面向对象 2 python的构造函数 1 pyt
  • 【论文整理1】On the Continuity of Rotation Representations in Neural Networks

    1 前置知识 1 1 Gram Schmidt正交化 参考阅读 Gram Schmidt过程 看完这篇应该基本能理解 但是他对于公式的讲解有一个地方讲解得不是很清楚 即为什么分母是平方形式呢 1 2 差集 定义 差集是一种集合运算 记A B
  • Pytest自动化测试框架之Allure报告

    简介 Allure Framework是一种灵活的 轻量级 多语言测试报告工具 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试 从开发 测试的角度来看 Allu
  • 9.14 C++作业

    仿照vector手动实现自己的myVector 最主要实现二倍扩容功能 include
  • 浅尝MVVMLight…

    最近要写WPF技术的项目 所以要学习一下关于WPF的知识 今天呢了解了一下MVVM的知识 具体内容如下了 MVVM呢是Model View ViewModel的缩写了 MVVM的由来算是有MVP Model View Presenter 模
  • 计算机专硕自主命题的学校,这所计算机/软件都是B+的知名985大学,计算机专硕改为408!...

    复旦大学是上海的一所985大学 计算机学科评估是B 软件工程的的学科评估也是B 从往年来看 也吸引了不少同学报考 尤其是计算机专硕 自主命题 招人很多 虽然一年多之前有消息说不提供住宿 但是报考的人还是络绎不绝 但是 今年 复旦大学的计算机
  • BZOJ4347 [POI2016]Nim z utrudnieniem

    这题 挺厉害 我们可以用f i j k 表示前i个数 选的个数模d余j 异或和为k的方案数 我们要求的是f n 0 s s为所有数的异或和 另外在n是d的倍数的时候要减一 可是这样直接转移的话显然会超时 我们把所有权重从小到大排序 一个数和
  • 时序分解

    时序分解 MATLAB实现基于SVD奇异值分解的信号分解分量可视化 目录 时序分解 MATLAB实现基于SVD奇异值分解的信号分解分量可视化 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 SVD分解重构算法 MATLAB程序
  • CentOS 7中 rsync 备份数据使用实例

    rsync工具用于将文件和目录从一个位置同步到另一个位置 同步的位置可以在本地服务器或远程服务器上 在Centos中使用下面命令安装rsync 对于负荷较重的 rsync 服务器应该使用独立运行方式 yum install rsync xi
  • leaflet的基础用法

    leaflet的基础知识 1 divIcon自定义图标 var myIcon L divIcon className my div icon L marker 50 505 30 57 icon myIcon addTo map 2 fea
  • 【牛客网】 排序子序列

    时间限制 1秒 空间限制 32768K 牛牛定义排序子序列为一个数组中一段连续的子序列 并且这段子序列是非递增或者非递减排序的 牛牛有一个长度为n的整数数组A 他现在有一个任务是把数组A分为若干段排序子序列 牛牛想知道他最少可以把这个数组分
  • Latex插入Matlab代码

    usepackage listings lstset language Matlab lstset breaklines 自动将长的代码行换行排版 begin document lstinputlisting xx m 将待插入的xx m文
  • 小程序中的实时日志,直接在微信公众号可以看到数据

    前言 小程序中的实时日志 直接在微信公众号可以看到数据 具体操作 注意 小程序实时日志每天的条数就大为100w条 1 封装的log js方法 放到utils里面 var log wx getRealtimeLogManager wx get
  • 云环境部署django+uwsgi 生产环境

    准备条件 1 确保有一个能够用runserver正常启动的django项目 2 项目已上传到linux 3 linux上已部署好python环境 且已安装好项目所需的模块 安装uwsgi pip3 install uwsgi 基于uwsgi
  • 【Java】构造器(构造方法)是否可以被重写?

    1 前言 首先 构造器是不能被继承的 因为每个类的类名都不相同 而构造器名称与类名相同 所以根本谈不上继承 又由于构造器不能继承 所以就不能被重写 但是 在同一个类中 构造器是可以被重载的 其实 在之前的一篇博客中 我已经记录了重载和重写的