【java】private和static方法不能被重写

深度强化学习-D3QN算法原理与代码 Dueling Double Deep Q Network(D3QN)算法结合了Double DQN和Dueling DQN算法的思想,进一步提升了算法的性能。如果对Doubel DQN和Dueling DQN算法还不太了解的话,可以参考我的这两篇博文:深度强化学习-Doubel DQN算法原理与代码和深度强化学习-Dueling DQN算法原理与代码,分别详细讲述了这两个算法的原理以及代码实现。本文就带领大家了解一下D3QN算法,代码链接见下方。 代码:https://github.com/indigo 阅读详情

一、什么是重写

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。

二、private方法不能被重写

package rewrite;


class Person {
	private void eat() {
		System.out.println("Person吃饭");
	}
}

class Student extends Person {
	public void eat() {
		System.out.println("stu吃饭");
	}
}

public class rewrite {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person per = new Person();
		per.eat();
		
		Student stu = new Student();
		stu.eat();
	}

}

在学习继承的过程中,我们知道,如果在父类中修饰了一个private的方法,子类继承之后,对子类也是不可见的。子类重写则在编译阶段就会报错。

三、static方法不会被重写


public class staticTest {
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Father son = new Son();	//声明为Father类,son静态方法和Father类绑定
		son.method();
		son.staticMethod();	
		
		Son son2 = new Son();
		son2.method();
		son2.staticMethod();
	}
}


class Father{
	
	void method(){
		System.out.println("父类方法");
	}
	
	static void staticMethod(){
		System.out.println("父类静态方法");
	}
}
 
class Son extends Father{
	
	void method(){
		System.out.println("子类方法");
	}
	
	static void staticMethod(){
		System.out.println("子类静态方法");
	}
}


首先要强调,静态方法是不会被覆盖的。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法类的任何实例都不相关,所以概念上不适用。

四、参考

Java 重写(Override)与重载(Overload)

 

 

Mamba-YOLO训练前必看:从环境配置到数据集调整的完整流程 本文详细介绍了Mamba-YOLO目标检测框架的完整训练流程,包括环境配置、数据集优化和模型调参。从硬件准备到依赖安装,再到数据增强和超参数调整,提供了一系列实用技巧和常见问题解决方案,帮助开发者高效训练Mamba-YOLO模型,避免常见踩坑记录。 阅读详情

相关推荐

C# Log4Net不输出日志的解决方法

log4net是一个流行的 .NET 日志框架,用于记录应用程序的日志信息。如果你在使用log4net。

精通搬砖,资深技术砖家,在软件开发,人工智能,设备开发等领域都有研究。商业合作&交流学习可私信联系。 1263

Java中private方法可以被重写吗?

想要弄清楚这个问题,我们首先要知道的就是什么是方法重写。 这是百度的定义:方法重写又称方法覆盖 。方法的重写是指两个方法的返回值、方法名、参数的类型和个数相同 (子类重写父类的方法)。 方法的重写,不能发生在同类中,只能发生在子类中。 若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 但是根据我自身的学习,我是这样理解的:再有继承关系的两个类中,即一个子类A和一个父类B,现在父类B中有一个已经定义好的方法,现在子类A想要使用这个方法,但是父类B中的功能,子类

hahahamemedajyc的博客 6776

WordPress搭建“外贸独立站”完整操作教程

  以往的文章,我们介绍了很多种搭建独立站的方式,有最省事的Shopify 、最专业的Magento以及最省钱的Wordpress Woocommerce。其中,通过主机托管的方式又分了免费的谷歌云vps主机、1美元Godaddy主机以及SiteGround共享主机三种。建站方法方式实在太多了,有免费的,有廉价的,有商业版的,有共享主机、有云主机主机以及各种各样的vps服务器,选择哪种方式,哪款主机,也只有真正试了才直到。   没错,上述的这些方法方式,无一例外,我都亲身折腾过。从个人实际需求和建站方式来

www25qi的博客 8081

javascript 中定义private 方法

出处:http://aoqi1883.blog.163.com/blog/static/8277676420081126112612458/   javascript 中可以定义类,一个function就是一个类。 那么怎么定一个一个类的private方法。 Class = function(config){        //public 对象 obj.save 可以直接调用         ...

天青色等烟雨 而我在等你 508

Tessent IJTAG ICL:从规范到实践的硬件描述语言指南

本文深入解析Tessent IJTAG ICL语言在硬件测试中的应用,从规范到实践提供全面指南。通过模块化设计、网络提取与编辑等实战技巧,帮助工程师高效构建标准化测试网络,显著提升芯片测试效率与覆盖率。特别分享TDR/SIB/TAP的ICL实现方法及调试策略,适用于SoC、车载芯片等复杂场景。

weixin_33606346的博客 301

触摸屏蓝牙控制

使用杰理芯片通过蓝牙实现触摸屏功能,需要结合触摸屏数据采集、蓝牙数据传输以及移动端应用的实现。

m0_46145044的博客 1109

Java基础—— final 关键字

final 关键字 应用场景 当不希望类被继承时,可以用final修饰。 当不希望父类的某个方法被子类覆盖 / 重写(override)时,可以用final关键字修饰。 当不希望类的的某个属性的值被修改,可以用final修饰。 当不希望某个局部变量被修改,可以使用final修饰 final 的使用细节 final修饰的属性又叫常量,一般用XX_XX_XX命名 final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一【选择一个位置赋初值即可】: 定义时 — public

qq_43575044的博客 1014

vnpy_ctp源码下载后转变为python可用的处理过程

vnpy_ctp源码下载后在window中编译使用

m0_37967652的博客 3328

java中方法的重写

1.private、static、final方法均不能被重写。 2.虽然private方法无法被重写,但在子类中可以定义方法名、参数列表与父类均相同的子类自己的private方法。 3.子类方法的访问权限不能小于父类方法的访问权限。 4.子类方法抛出的异常只能比父类方法抛出的异常相同或更少。 5.子类重写父类方法时,子类的返回值可以和父类相同,或者为父类返回值类型的子类。 ...

m0_53328194的博客 1538

银河麒麟操作系统最佳实践专栏介绍

本专栏聚焦国产银河麒麟操作系统(桌面版/服务器版)的实战应用,提供系统安装、配置优化、应用部署、故障排查等实用指南。内容基于真实操作场景,涵盖Linux通用技术(如RAID配置、环境变量管理)、服务器系统专项(如数据库迁移、驱动安装、安全加固)及桌面系统技巧(如PXE安装、镜像封装)。面向IT运维、开发者和国产化转型人员,突出实战性和差异化,帮助用户规避常见问题,提升系统管理效率。所有教程均配有详细步骤和截图,确保可操作性,并持续更新适配新版系统。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 533

在 Fiori Elements Object Page 的表格中用 UI.Hidden 隐藏列:语义、边界与落地实践全解析

摘要: Fiori Elements的Object Page表格中,UI.Hidden注解支持静态和动态隐藏列。动态隐藏分为两种:基于父实体属性隐藏整列,或基于子实体属性按行隐藏单元格。关键约束包括:支持服务端操作的列禁止使用动态隐藏,否则会导致UX不一致。ABAP CDS不支持路径式UI.Hidden,需改用XML注解。该功能需与UI.Importance、个性化等机制明确区分,避免混淆。对于可能参与排序/过滤的列,建议仅使用静态隐藏。实际应用中需注意注解位置(整列或单元格级)和业务场景的匹配。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 205

Java static的方法不能被重写

原文:https://blog.youkuaiyun.com/xjyr/article/details/79435349 重写方法的目的是为了多态,或者说:重写是实现多态的前提,即重写是发生在继承中且是针对非static方法的。 语法上子类允许出现和父类只有方法体不一样其他都一模一样的static方法,但是在父类引用指向子类对象时,通过父类引用调用的依然是父类的static方法,而不是子类的static...

Allence的博客 1290

T型三电平逆变器中点电位平衡详解

T型三电平逆变器(T-type Three-Level Inverter)是一种高效的多电平拓扑,相比传统NPC(Neutral Point Clamped)三电平逆变器,具有更低的开关损耗、更高效率和更简单的结构,尤其适用于中功率应用(如光伏逆变器、风电变换器和工业驱动)。(T-type Three-Level Inverter)中的应用已成为当前中高压功率变换领域(如光伏逆变器、储能PCS、电动汽车充电桩、风电并网和工业驱动)的热门方案。针对 T型逆变器,类似 NPC 的零序注入法适用。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 546

java private类无法被重写_【java】private和static方法不能被重写

一、什么是重写重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异...

weixin_42364640的博客 1458

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

为什么父类方法访问修饰符为 private/final/static 则子类就不能重写该方法

​ 在Java中,static方法属于类级别,这意味着它们与特定的实例对象无关,而是与整个类相关联。因此,static方法在编译时就确定了调用哪个方法,而不是在运行时根据实例对象的类型来确定。​ 由于static方法的调用在编译时就确定了,而不是在运行时确定,所以子类无法重写父类的static方法。子类可以定义与父类static方法同名的方法,但这只是在子类中隐藏了父类的方法,并不能称之为重写。private 修饰的方法是私有方法,只能在当前类中访问,子类无法访问到这个方法,更不用说重写了。

Taitres的博客 563

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

java的抽象方法为什么不能是static、final、private

abstract修饰的类需要被子类继承,abstract修饰的方法需要子类重写,但是final修饰的类不能被继承,final修饰的方法也不能被子类重写。因为abstract修饰的方法必须通过子类重写才有效,而private修饰的方法对子类不可见,即父类中如果存在private abstract void out();而子类中有private void out(){},则它们是两个不同的方法,子类中的out方法不是对父类的重写,而是属于子类独有的方法。

weixin_50208718的博客 697

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

抽象方法为什么不能用private ,final,static修饰

private:如果父类的方法用private修饰,那么这个方法就只能在父类本类里使用,无法继承给子类,自然子类也就无法重写父类的private 方法。static:静态方法在类加载时就会执行,而abstract的方法并没有方法体,执行啥呢?大原则:这三个修饰符都与重写相违背,因为abstract修饰的方法必须在子类里重写。final: final修饰的方法就是规定不能被重写,so。

beixi1234的博客 1006

Java基础(十三)——面向对象下 抽象类与方法、abstract不能与private、static、final同时使用!

抽象类与抽象方法一、定义二、abstract关键字abstract修饰类abstract修饰方法abstract与这些是水火不容的:private、static、final修饰的方法、final修饰的类privatestaticfinal修饰的方法final修饰的类 一、定义 随着继承层次中子类变得越来越多,越来越具体,而父类越来越一般,越来越通用,类的设计应该保证子类与父类有一种共享的特征,因此就要将父类抽象化,抽象的类没有具体实例。 二、abstract关键字 abstract修饰类 ——抽象类,抽象类

qq_43592157的博客 786

private,static,final和域对于重写覆盖方法的区别。

以上是我的实例代码,我通过不断修改修饰符关键字等来判断的,内容过于简单,我直接写总结: 总结: 重写普通方法后,父类内部程序调用的已被重写的方法,不会再是自己类代码里面的方法,而是子类已经重写好的代码。 若想调用父类已被重写的方法,只能子类中使用super关键字,或者使用不会被重写的关键字,或者定义父类对象实例。 还有,private,final,static,和域都不会

jcz1226的博客 295

java方法重写_Java方法重写注意事项

1.重写方法的方法名和参数列表要和被重写方法一致。2.在 java 1.4版本以前,重写方法的返回值类型被要求必须与被重写方法一致,但是在java 5.0中放宽了这一个限制,添加了对协变返回类型的支持,在重写的时候,重写方法的返回值类型可以是被重写方法返回值类型的子类。示例代码如下:class A{public Object test(){return null;}}class B extends...

weixin_35511284的博客 456

public、protected、friendly、private区别

见图

Zoriah的博客 223

Java中是否可以覆盖(override)一个private或者是static的方法?

不可以, 1. override:子类重写父类的方法(返回值,方法名,参数都相同)以实现多态。 2. private只能够被自身类访问,子类不能访问private修饰的成员,所有不能override一个private方法 3. static方法是与类绑定的与任何实例都无关,随着类的加载而加载, static是编译时静态绑定的,override是运行时动态绑定的。形式上static可以over...

orz024572的博客 6697

java static 覆盖_static关键字什么意思?Java中是否可以覆盖一个private或者是static的方法?...

答案:“static”关键字表明一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。java中也不可以覆盖private的方法,因为private修饰的变量和方法只能在当前类中使用,如果是其他的类继承当前类是不能...

weixin_39943799的博客 183

Java 中是否可以重写(覆盖)⼀个 private 或者 static ⽅法?

Java 中 static ⽅法不能被覆盖,因为⽅法覆盖是基于运⾏时动态绑定的,⽽ static ⽅法是编译时静态绑定的。 static ⽅法跟类的任何实例都不相关,所以概念上不适⽤。 Java 中也不可以覆盖 private 的⽅法,因为 private 修饰的变量和⽅法只能在当前类中使⽤, 如果是其他的类继承 当前类是不能访问到 private 变量或⽅法的,当然也不能覆盖。 static静态⽅法补充:静态的⽅法可以被继承,但是不能重写。如果⽗类和⼦类中存在同样名称和参数的静态⽅ 法,那么该⼦类的⽅法会

qq_41544627的博客 2884

子类不能重写父类静态方法

重写规则 子类重写的方法的权限不能低于父类的。 子类重写的方法抛出的异常要小于等于父类的抛出异常。 子类重写的方法返回类型要小于等于父类的方法返回类型。 父类的private方法不能被重写。 父类的static方法不能被重写,如果在子类中定义类和父类完全相同static方法,则父类的static方法被隐藏,使用子类对象调用的还是子类的方法。 演示 public class OverrideDemo { public static void main(String[] args) {

paidaxinga的博客 2165

抽象方法不能使用private、final和static关键字修饰

8)抽象方法不能使用private、final和static关键字修饰,因为这些关键字都与重写相违背。

weixin_48345177的博客 260
上一篇: Kubelet 状态更新机制
下一篇: Spring中 如果该Service有多个实现类,它怎么知道该注入哪个ServiceImpl类?
cbmljs
博客等级 码龄10年 329粉丝 130原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值