实例说明java中覆盖静态方法和非静态方法的不同

超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单 python3+、Anaconda3或Miniconda3 Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过pip包安装最新稳定版的YOLOv8,或者克隆Ultralytics GitHub仓库以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 最简单直接的方式就是直接使用pip方法直接安装。 也可以直接从GitHub仓库安装包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具 阅读详情

      本文将通过实例的演示说明在java中覆盖静态方法和非静态方法的不同之处。并在文章最后给出具体的解释。

      首先我们提供两个类,基类为Parent,派生类为Child。在Parent中我们提供两个方法,一个是静态方法staticMethod(),一个是非静态方法nonStaticMethod()。在Child类中我们覆盖着两个方法。
class Parent
{
 public void nonStaticMethod()
 {
  System.out.println("Parent's Non-Static Method is Called"); 
 } 
 
 public static void staticMethod()
 {
  System.out.println("parent's static method is called"); 
 }
}

class Child extends Parent
{
 public void nonStaticMethod()
 {
  System.out.println("child's non-static method is called"); 
 }
 
 public static void staticMethod()
 {
  System.out.println("child's static method is called"); 
 }
  
}
在Test类中我们分别使用Parent p1 = new Parent(),Parent p2 = new Child(),Child c = new Child()得到三个实例,并分别调用静态方法和非静态方法,我们来看程序的运行结果
public class Test
{
         public static void main(String args[]) 
         {
          Parent p1 = new Parent();
          Parent p2 = new Child();
          Child c = new Child();
          System.out.print("Parent.static: "); Parent.staticMethod();
          System.out.print("p1.static: "); p1.staticMethod();
          System.out.print("p2.static: "); p2.staticMethod();
          System.out.print("p1.nonStatic: "); p1.nonStaticMethod();
          System.out.print("p2.nonStatic: "); p2.nonStaticMethod();
          System.out.print("Child.static: "); Child.staticMethod();
          System.out.print("c.static: "); c.staticMethod();
          System.out.print("c.nonStatic: "); c.nonStaticMethod();
         }

}
程序的运行结果为:
Parent.static: parent's static method is called
p1.static: parent's static method is called
p2.static: parent's static method is called
p1.nonStatic: Parent's Non-Static Method is Called
p2.nonStatic: child's non-static method is called
Child.static: child's static method is called
c.static: child's static method is called
c.nonStatic: child's non-static method is called
值得注意的是p2实际上是一个Child的类型的引用,然而在调用静态方法的时候,它执行的却是父类的静态方法,而不是Child的静态方法,而调用 p2的非静态方法的时候执行的是Child的非静态方法,为什么呢?原因是静态方法是在编译的时候把静态方法和类的引用类型进行匹配,而不是在运行的时候和类引用进行匹配。因此我们得出结论:当我们在子类中创建的静态方法,它并不会覆盖父类中相同名字的静态方法。

终于找到了!Ubuntu 虚拟机卡死的终极解决方案(如何解决VMware安装Ubuntu24.04桌面进不去、黑屏、虚拟机卡死、显示不全、屏幕闪烁等问题) 阅读详情

相关推荐

HUAWEI华为荣耀MagicBook MateBook B D E X 13 14 16 笔记本MateStation台式机原装Win10出厂Windows11系统

HUAWEI华为MateBookX原装出厂系统恢复原厂系统,型号:MACHC-WAE9LP、EUL-W29P、MACHR-W19L、MACHR-W29、MACHD-WFE9、MRGF-16、MACHR-W19BL、MACHD-WFE9Q、WT-W19、Mach-W19、Mach-W29、WT-W09、WT-W19、MACH-W29等。HUAWEI华为MateBookE原装出厂系统恢复原厂系统,型号:PAK-AL09、GK-W7X、GK-G58、GK-W76、DRC-W76等。

QQ17855069的博客 17万+

JAVA中子类可以覆盖(重写)父类中static的方法吗?

静态方法不存在覆盖【学过多态理解的会更深】* 私有方法不能继承,所有不能覆盖。* 构造方法不能继承,所有不能覆盖。* 覆盖只针对方法,不谈属性。

weixin_51333028的博客 2198

达梦数据库集群部署(主备)

达梦数据库集群部署(主备)

m0_71845127的博客 1462

JAVA中静态方法的覆盖调用

自己记录的

qq_39748284的博客 855

Android SSL证书固定实战:原理、方案与避坑指南

SSL/TLS协议是保障网络通信安全的基石,其核心原理是通过非对称加密和数字证书实现身份认证与数据加密。在移动应用开发中,为了防止中间人攻击,证书固定技术应运而生,它通过将服务器证书或公钥的哈希值预置在应用内,强制校验服务器身份,从而大幅提升通信链路的安全性。这一技术对于金融、电商等高安全要求场景尤为重要。本文聚焦Android平台,深入解析SPKI固定、Network Security Configuration与OkHttp CertificatePinner等主流方案,并针对证书更新、调试兼容等常见痛

weixin_33935636的博客 403

用AI从0开始量化交易-制定学习计划安装学习环境

量化小白,利用AI从零开始学量化

weixin_52285994的博客 2113

Surpass Day8——Java static关键字、继承、方法覆盖

static关键字、继承、方法覆盖

胖虎虎 402

什么是 SAPGUI 里的 Logon Group/Server

这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。

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

java 静态方法可以覆盖吗

覆盖(override)是在继承+多态的前提下的概念。Java中的静态方法不多态,所以不涉及覆盖,无论静态方法是在基类还是派生类上。  从结果看,JVM中有4条invoke-*指令:invokevirtual、invokeinterface、invokestatic、invokespecial,其中前两条指令有多态语义而后两条没有。  静态方法是用invokestatic来调用的,编译的时候就

wisgood的专栏 4681

基于Playwright和反爬虫规避技术的雪球股票讨论数据采集方案

随着量化投资和社交投资的兴起,雪球作为中国领先的投资社交平台,其用户讨论数据成为研究市场情绪的重要来源。本文将详细介绍如何使用最新的Playwright技术和反爬虫规避策略,构建一个高效、稳定的雪球股票讨论爬虫系统。本文详细介绍了基于Playwright的雪球股票讨论爬虫实现方案,涵盖了从基础配置到高级反爬虫策略的各个方面。AI驱动的反爬虫对抗更智能的请求调度算法区块链技术在数据溯源中的应用联邦学习在数据采集中的运用。

2201_76125261的博客 1011

磁悬浮分子泵:起源、现状与未来趋势深度解析

摘要 磁悬浮分子泵作为高真空获取的关键设备,通过磁悬浮技术实现转子无接触高速运转,大幅提升了真空系统的性能和可靠性。本文系统梳理了分子泵从机械轴承到磁悬浮的技术演变历程,分析了当前行业格局及主要厂商产品特性,包括爱德华兹、普发真空等国际巨头的技术优势。研究进一步探讨了磁悬浮分子泵在半导体制造、科研设备等领域的核心应用,通过数学模型揭示了其性能参数关系。最后,展望了未来在智能化、节能化等方面的发展趋势,为相关领域的技术创新提供参考。 关键词:磁悬浮分子泵;高真空技术;半导体制造;科研设备;技术发展

技术工作者 691

java方法覆盖(当有static的方法时)

package test; public class Base { void method(){ System.out.println("method of Base"); } static void staticMethod(){ System.out.println("static method of Base"); } public static void main(

binbin199604的博客 1099

基于Matlab的轨迹分析行为识别

本文将介绍基于Matlab的轨迹分析行为识别方法,并提供相应的源代码。在轨迹特征提取完成后,我们需要通过对于某一时间窗口内的轨迹特征进行聚合和分析,得到相应的行为特征。轨迹分析作为一种简单有效的行为识别方法,在实际应用中得到了广泛的应用。本文介绍了一种基于Matlab的轨迹分析行为识别方法,并提供相应的源代码作为参考。轨迹分析是指对于一定时间内某个对象在空间中运动的路径进行跟踪和分析的方法。在行为识别中,我们可以通过对于轨迹进行特征提取和分析,进而得到该对象的运动模式和行为特征。二、轨迹分析行为识别流程。

DevProPlus的博客 885

静态方法为什么不能调用非静态成员?与静态方法和实例有何不同?和重载和重写有什么区别?

编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法。静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),不允许访问实例成员(即实例成员变量和实例方法),而实例方法不存在这个限制。发生在同一个类中(或者父类和子类之间),方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。2.在类的非静态成员不存在的时候静态方法就已经存在了,此时调用在内存中还不存在的非静态成员,属于非法操作。

CHEN_DA_PING的博客 861

廖雪峰Python教程[完整版]

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java中的实例方法、静态方法和数据域的覆盖和隐藏说明

调用实例方法与访问数据域或静态方法的主要不同:             使用引用变量调用实例方法时,变量所引用的对象的实际类在运行时决定使用该方法的哪个实现。访问数据域或静态方法时,引用变量所声明的类型在编译时决定使用哪个数据域或静态方法。 public class HidingDemo { public static void main(String[] args) {

SamXCode学习博客 1792

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java的父类静态方法可以被子类继承和重写(覆盖)吗?

先给出答案:可以被子类继承,不能被子类重写。 关于父类和子类关系还不太了解的看一去看一下链接https://blog.youkuaiyun.com/qq_34826261/article/details/97635047,里面详细解释了父类和子类不同情况下成员方法和成员变量的关系。这里默认已经知道了子类和父类之间的关系。 那么子类能不能重写父类的静态方法? class parent{ public stat...

qq_34826261的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java为什么不允许覆盖静态方法?

为什么无法覆盖静态方法? 如果可能,请使用示例。

p15097962069的博客 1079

Java 中的静态方法与实例方法(使用总结)

实例方法 实例方法是需要在调用之前创建其类的对象的方法。要调用实例方法,我们必须创建在其中定义它的类的对象。 内存分配:这些方法本身存储在堆的永久代空间中,但参数(传递给它们的参数)及其局部变量和要返回的值在堆栈中分配。它们可以在它们所在的同一个类中调用,也可以从定义在同一个包或其他包中的不同类中调用,这取决于提供给所需实例方法的访问类型。 要点: 实例方法属于类的对象,而不属于类,即它们可以在创建类的对象后调用。 实例方法不是在每个实例的基础上存储的,即使使用虚拟方法也是如此。它们存储在一...

jake_Aaron的博客 1万+

静态方法(static)和非静态(Non-Static)方法(以java为例)

静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭 非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM 回收之后,也跟着消失 静态方法:⒈ 有静态属性的类,一般会定义静态方法。⒉ 没有属性的类,一般会定义静态方法。⒊ 如果一个方法与他所在类的实例对象无关,那么它就应该是静态的。静态方法可以被

guoyp2126的博客 2163

静态方法和非静态方法相互调用

在同一个类中:  对于静态方法,其他的静态或非静态方法都可以直接调用它。  而对于非静态方法,其他的非静态方法是可以直接调用它的。但是其他静态方法只有通过对象才能调用它。静态方法不能被非静态方法覆盖。 package web; import java.util.Scanner; public class test_1 { public static void main(...

yiye2017zhangmu的博客 1万+

java 隐藏 覆盖_java覆盖和隐藏

隐藏指的是子类把父类的属性或者方法隐藏了,即将子类强制转换成父类后,调用的还是父类的属性和方法,而覆盖则指的是父类引用指向了子类对象,调用的时候会调用子类的具体方法。(1)变量只能被隐藏(包括静态和非静态),不能被覆盖(2)可以用子类的静态变量隐藏父类的静态变量,也可以用子类的非静态变量隐藏父类的静态变量,也可以用非最终变量(final)隐藏父类中的最终变量;(3)静态方法(static)只...

weixin_34324114的博客 190

静态方法不能被重写/覆盖,只能被隐藏

静态方法不能被重写/覆盖,只能被隐藏 为了说明这个例子,下面看一段代码: class Parent{ static void print1() { System.out.println("Parent print1"); } public void print2() { System.out.println("Parent print2"); } } class Child ext...

qq_40678577的博客 802

java中静态块,静态方法,非静态方法,构造方法执行的顺序

转载来源:https://blog.youkuaiyun.com/lurao/article/details/51225842 叙述:为了充分说明静态块,静态方法,构造方法,普通方法的执行顺序看下面的例子: package test; /** * * 含有继承时,各种发法(静态块,静态方法,构造方法,普通方法)的执行顺序 * @author * */ public class ExA { publi...

qq_35939148的博客 456

java 类 覆盖_java类的覆盖

java 中子类继承父类的行为,也可以根据自己的个性覆盖父类的方法。父类可以覆盖的方法具备2大特点:1、该方法可被子类访问。2、该方法为非静态的。(1)public class Book {void print(){System.out.println("book");}}public class CourseBook extends Book{void print(){System.out.pr...

weixin_39658966的博客 981

静态方法和非静态方法在父类和子类之间的区别

主要通过程序来演示父类与子类分别调用静态方法和非静态方法时的区别。

mayzilee的博客 4026

静态变量注意要点,在静态方法和非静态方法之间的注意要点,附加了final

java中有俩种类型变量,一种是加了关键字static修饰的静态变量和普通的实例变量,一个类只有一个静态变量,简单来说就是 同一类所有的实例共享一份静态变量或者是每一个类一个静态变量 静态变量有什么特殊的地方? 静态变量是在类在加载过程中初始化的 这也就意味着 1.静态变量会在该类任何 所有对象创建前就初始化 2.静态变量会在该类任何 所有静态方法执行前初始化 3.只会在类第一次载入的时候被初始化 1 . 非静态方法是否能调用存取静态变量? 答案是可以(为什么输出的是0?..

m0_65725614的博客 713
上一篇: 从一道测试题分析java中的方法重载(overload)
下一篇: 今天你java了吗?
mingjava
博客等级 码龄24年 68粉丝 114原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值