Java基础重温(六)子类与父类实例方法、静态方法的重写问题

Java编程关于子类重写父类方法问题的理解 主要介绍了Java编程关于子类重写父类方法问题的理解,分享了有关子类重写父类的实例,具有一定参考价值,需要的朋友可以了解下。 立即下载

一、慨况

本文讨论子类重写父类方法的问题。

子类分别有静态、实例方法,父类也分别有静态、实例方法,现在分四种情况:

a.实例方法(子类) ---重写 ---->  实例方法(父类)

a.实例方法(子类) ---重写 ---->  静态方法(父类)

a.静态方法(子类) ---重写 ---->  实例方法(父类)

a.静态方法(子类) ---重写 ---->  静态方法(父类)

二、代码

1.父类

package com.desmond.thread.main;

public class Parent {
	
	public int method1(int x, double y) {
		return 2;
	}
	
	public static void method2() {
		
	}
	
	public double method3(double y) {
		return 2d;
	}

}

2.子类

package com.desmond.thread.main;

public class Child extends Parent{
	
	/*
	 * 子类实例方法重写父类实例方法
	 * 编译失败,参数列表(数量、类型、顺序)不一样
	 */
	@Override
	public void method1(int x) {
		
	}
	
	/*
	 * 子类实例方法重写父类实例方法
	 * 编译失败,返回类型不一样
	 */
	@Override
	public double method1(int x, double y) {
		return 3;
	}
	
	/*
	 * 子类实例方法重写父类静态方法
	 * 编译失败,子类的实例方法不能覆盖父类的静态方法
	 */
	public void method2() {
		
	}
	
	/*
	 * 编译成功,这是一个新的方法
	 */
	public void method2(int x) {
		
	}
	
	/*
	 * 子类静态方法重写父类实例方法
	 * 编译失败,子类的静态方法不能覆盖父类的实例方法
	 */
	public static double method3(double x) {
		return 3d;
	}
	
	/*
	 * 子类静态方法"重写"父类的静态方法
	 * 编译成功
	 */
	public static void method2() {
		
	}
	
}

三、结果

由此可以看出:

a.子类的实例方法可以重写父类的实例方法(当然是非private和final的),但参数列表(包括类型,数量和顺序)和返回类型必须一致。

 如果参数列表不一致,会被看出是子类的一个新的方法,并且重载了父类的方法

 如果返回类型不一致,则不能通过编译,因为不能与父类的方法形成重载(重载的返回类型必须一致)

b. 子类的实例方法不能重写父类的静态方法

c. 子类的静态方法不能重写父类的实例方法

d. 子类的静态方法"重写"父类的静态方法,这个好像并不能叫重写,因为无法加上"Override"等关键字注解,但是确实能通过编译,并且有如下的现象:

package com.desmond.thread.main;

public class Test {
	
	public static void u(){ System.out.println("parent");};
}

package com.desmond.thread.main;

import java.util.Collection;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
import java.util.Set;

public class TestA extends Test{
	
	/*
	 * public static int u(int x){ return x};
	 */
	
	public static void u(){ System.out.println("child");};

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		TestA a = new TestA();	
		a.u();
		
		Test b = new TestA();
		b.u();
	}

}

结果:

child
parent

可见子类静态方法并未覆盖父类的静态方法。


处理SAP资产折旧AFAB 过账报错:“科目 8019010100 要求一个成本会计分配” 本文介绍如何处理资产折旧报错 ““科目XXXXXXX 要求一个成本会计分配”” 阅读详情

相关推荐

SAP LSMW数据批导操作手册及跨客户端传输方法(涉及默认值配置,及多余字段如何删除)

SAP LSMW数据批导操作手册及跨客户端传输方法

我好像病了的博客 6087

Java中父类的静态方法能否被子类重写?

Java中父类的静态方法能否被子类重写前言一、final关键字和static关键字介绍二、问题产生及解决1.错误结论2.正确结论及验证总结 前言 今天在复习final关键字的时候突发奇想,在考虑static和final关键字既然可以修饰静态常量,那能否修饰一个方法呢?带着这个问题,我发掘到了一个疑问点:Java中父类的静态方法能否被子类重写? 一、final关键字和static关键字介绍 先来简单回顾下这两个关键字的具体含义 (1)final:可以修饰类、属性、方法和局部变量。 应用:①当不希望类被继承

GSW12138的博客 3978

H.264 Profile与Level详解:如何为不同应用场景选择合适的编码配置

本文深入解析了H.264编码标准中的Profile与Level概念,指导开发者如何为不同应用场景选择合适的配置。文章对比了Baseline、Main和High三大Profile的特性与适用场景,并解释了Level如何限定视频的分辨率、帧率与码率上限。通过实战指南,帮助读者在视频通话、在线点播和专业制作等场景中,平衡画质、兼容性与性能,实现高效编码。

rgv2345678的博客 238

子类重写(覆盖)父类的方法必须满足的条件+构造方法和方法的重载和重写

父类中的方法在子类中必须可见,即子类继承了父类中的该方法(可以显式的使用 super 关键字来访问父类中的被重写的方法),如果父类中的方法为 private 类型的,那么子类虽能继承,但无法覆盖 子类和父类的方法必须是实例方法,如果父类是 static 方法而子类是实例方法,或者相反都会报错。如果父类和子类都是 static 方法,那么子类隐藏父类的方法,而不是重写父类方法 ...

升级打怪 4228

【GEOS-Chem模拟教程第二期下】全球生物质燃烧 GFAS 数据配置

本博客详细介绍全球生物质燃烧 GFAS 数据下载及在 GEOS-CHEM 模型中的配置

WW、forever的博客 1396

【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践

SQLBot是 DataEase 团队开源的自然语言转 SQL 智能助手,致力于让非技术用户也能通过自然语言与数据库对话,自动生成 SQL 查询,实现自助数据分析、智能BI问答、报表生成等场景。SQLBot 结合了大语言模型(LLM)、数据库元数据解析、SQL解析与执行等多项技术,具备强大的多数据库适配能力和灵活的扩展性。降低数据分析门槛,让业务人员无需掌握SQL即可获取数据洞察支持多种数据库类型,适应企业多样化数据环境提供可扩展的API和插件机制,便于集成到各类BI、数据平台和业务系统。

kakaZhui的博客 829

04.java课复习

1.低精度可转高精度,int 低精度,double高精度(存储位数多) double a=10; 2. 输出的i–也会赋值 sout(i++); i++; 3.数组定义不合法(赋值只能指定任意一者) 父=子 5.没有catch也可以 6.接口都是抽象方法和静态成员7.抽象类不能实例化 8.自定义异常类 9.考试错误 实例方法(对象的方法)子类重写不可以重写变为子类static方法//子类在方法重写时,不可以把父类的实例方法重写为类(static)方法,也不可以把父类的类(static)方法重写为实例方

weixin_47039303的博客 571

RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGB

RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGB

J。 2342

Java面向对象程序设计 - 清览云题库

广州商学院的Java作业答案

FangWenJing150的博客 1万+

使用 MATLAB/Simulink + Simscape Electrical + Simulink Design Optimization,构建一个基于SiC/GaN的Z源逆变器在储能系统中的软启

《手把手教你学Simulink:Z源逆变器在储能系统中的应用》摘要 本文详细介绍了使用MATLAB/Simulink构建Z源逆变器储能系统仿真模型的全过程。Z源逆变器凭借其独特的阻抗网络结构,解决了传统逆变器在直通保护和升压能力方面的痛点。文章通过6个关键步骤:主电路搭建、调制策略设计、软启动实现、仿真分析、效率对比和工程问题解决方案,完整展示了Z源逆变器从理论到仿真的实现路径。重点讲解了直通零矢量SPWM调制策略和渐进式升压比控制方法,验证了系统93.3%的效率和优异的抗扰性能。该模型为光伏储能、电动汽车

MHD0815的博客 122

端到端自动驾驶的精准测试场景开发

1. 背景介绍 自动驾驶技术的发展正在改变交通运输的未来,然而,要实现安全可靠的自动驾驶,需要进行大量的测试和验证。端到端自动驾驶系统的测试场景开发是实现这一目标的关键。本文将详细介绍端到端自动驾驶的精准测试场景开发,包括核心概念、算法原理、数学模型、项目实践,以及未来发展趋势。 2. 核心概念与联系

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 1319

讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序

此题考察的是类加载器实例化时进行的操作步骤(加载–>连接->初始化)。 父类静态变量、 父类静态代码块、 子类静态变量、 子类静态代码块、 父类非静态变量(父类实例成员变量)、 父类构造函数、 子类非静态变量(子类实例成员变量)、 子类构造函数。 重温java基础,以免自己以后犯原则性错误,这是最基本,最基础的东西。 ...

qq_23000805的博客 3106

电源完整性分析:PDN阻抗与去耦电容设计——目标阻抗计算与电容选型深度实战

摘要:随着嵌入式处理器主频突破 GHz、多核架构普及,电源完整性(Power Integrity, PI)已成为高速 PCB 设计中不可忽视的关键环节。本文从 PDN(电源分配网络)阻抗模型出发,系统讲解目标阻抗计算方法、去耦电容选型策略、反谐振抑制技术,并结合 STM32F4 核心板的完整设计实例,提供一套可落地的电源完整性工程实践方案。电源完整性设计是一项系统工程,需要从目标阻抗计算电容选型反谐振抑制PCB 布局目标阻抗是设计的起点,由电源电压、纹波要求和瞬态电流决定去耦电容。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

Java基础重温(五)子类重写父类注意事项

A、重写规则之一:     重写方法不能比被重写方法限制有更严格的访问级别。 (但是可以更广泛,比如父类方法是包访问权限,子类的重写方法是public访问权限。) 比如:Object类有个toString()方法,开始重写这个方法的时候我们总容易忘记public修饰符,编译器当然不会放过任何教训我们 的机会。出错的原因就是:没有加任何访问修饰符的方法具有包访问权限,包访问权限比public当然

desmond的专栏 810

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

重温java基础

1.基本语法: java 对大小写敏感 类名:首字母应该大写,多个单词首字母要大写 方法名:所有的方法名都应该以小写字母开头。如多个单词,则后面的每个单词首字母大写。 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口:所有的Java 程序由public ...

qq_39178473的博客 249

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java中多态的方法调用顺序问题

这个标题起的有点大,我想说的重点并不是整个的顺序this.method(o)>super.method(o)>this.method((super)o)>super.method((super)o)这个顺序以及多态的详解可以参看一个经典实例理解java的三大特性之多态我在拜读这篇文章的时候很是赞赏,但是后来自己实践时发现了一些不一样的地方,于是在这里拉出来讨论。我在写方法时使用了toString方法

Jack_windows的博客 3434

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

重温JavaSE09

继承、权限修饰符、重写、super、Object类、类和类的关系

huichangzhe的博客 976

Java面向对象重温【继承与重写】

继承 继承:继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 作用: 代码重用 方便维护(高耦合) 子类和父类的关系: ​ 子类可以继承父类的功能,而且可以增加自己独特的功能。 类之间只能单一继承。子类只能有一个父类 语法: 编写父类: class 父类{ //公共的属性和方法 } 编写子类,继承父类: class 子类 extends 父类{

CNR233的博客 194

Java基础--重温Java的继承和重写

——Java培训、Android培训、iOS培训、.Net培训 期待与您共同交流!——继承和重写(extends&override)1. 继承1.1. 泛化的过程前面的案例中定义了T类和J类, 通过分析可以发现, 在这两个类中存在着大量的重复代码,像cells属性、print方法、drop方法、moveLeft方法、moveRight方法,在这两个类中都存在,并且实现上基本也是相同的,本着代码重用的

持之以恒,坚持思考,坚持创新! 877

重温继承和多态

继承 重写 多态

Huijiazhaomama的博客 279

JAVA语法:子类成员覆盖父类成员时的现象

1.重温JAVA语法:如父类Father与子类Son: class Son extends Father{ public String name = "son"; public void say(){ System.out.println("i am " + this.name); } public static void main(String[] args){ F

Simiam's TechLog 1785

重温Java基础(三)

默认访问权限(包访问权限),public,private以及protected。 注意:上述四种访问权限,只有默认访问权限和public能够用来修饰类。修饰类的变量和方法四种权限都可以。(本处所说的类针对的是外部类,不包括内部类) 修饰类 默认访问权限(包访问权限):用来修饰类的话,表示该类只对同一个包中的其他类可见。 public:用来修饰类的话,表示该类对其他所有的类都可见。 修饰类...

无名小卒菜的博客 276

java重温(继承)

一:继承 1.定义:继承会继承父类的方法和属性,也可以拥有自己特有的属性和方法。 2.格式:extends关键字 3.什么时候使用继承 4.注意 4.1 方法中访问变量的特点:方法内部>本类的成员内部>父类的成员内部 4.2 this和super ...

qq_56127002的博客 2245

Java继承关系的父子类中相同的成员变量

最近又重温了一遍《java编程思想》,在看的过程中产生一个想法,java中继承关系的父子类,相同的方法会被重写,那相同的变量会怎样呢?          答案是变量没有重写之说,如果子类声明了跟父类一样的变量,那意谓着子类中将有两个相同名称的变量 ;   看如下有趣的例子: public class A { public int m =

Jack-Win 7812

java 子类父类静态变量、方法、代码块、构造函数执行顺序探讨

重温类加载的过程:加载 验证 准备(为static类变量分配内存,初始化设置为null or 0) 解析 初始化(类变量赋值阶段) 1、虚拟机是优先加载含有main函数的类,会对此类优先加载,故要先加载类,才能执行main函数。 注:注意类加载时机,调用类的常量不加载。 2、加载类时候,若牵扯到父类子类,则一般要先调用父类,如果从子类调用父类的静态变量,不需要加载子类,只需要加载父类。 若两类都需要加载,则顺序是父类显式静态初始化成员变量、代码块 ------->子类显式静态初始化代码块.

weixin_42039823的博客 482

java 多态的调用顺序_Java中多态的方法调用顺序问题

这个标题起的有点大,我想说的重点并不是整个的顺序this.method(o)>super.method(o)>this.method((super)o)>super.method((super)o)这个顺序以及多态的详解可以参看一个经典实例理解java的三大特性之多态我在拜读这篇文章的时候很是赞赏,但是后来自己实践时发现了一些不一样的地方,于是在这里拉出来讨论。我在写方法时使用了...

weixin_42131728的博客 609
上一篇: Java基础重温(五)子类重写父类注意事项
下一篇: Java基础重温(七)java中hashcode()和equals(),equals()与==
desmond_assis
博客等级 码龄14年 33粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值