JAVA 继承与重写

16、JAVA入门——继承和方法重写 一、继承 1、基本概念 2、super关键字和子类对象 二、方法重写 1、概念 2、方法重写规则 3、方法重载和方法重写的区别 三、Object类 1、定义 2、Object类中的方法 3、Object类中的equals()方法 阅读详情

继承时候,每个子类都有一份父类变量的拷贝,但是如果修改当前子类中从父类继承的成员变量的话,该子类中父类中的变量也随着子类的变化而变化。一个子类修改并不影响另一个子类中父类成员变量的值,因为每个子类都有自己的拷贝:

public class Test2 {
    public int num=0;
    void print() {
        System.out.println("Test2: "+num);
    }
}



public class Test3 extends Test2 {

    void print() {
        System.out.println("Test3: "+num);
        num=num+6;
        super.num=super.num-1;
        super.print();
    }
}

public class Test extends Test2 {

    void print() {
        System.out.println(num);
        num=num+2;
        super.print();
    }

    public static void main(String[]args) {
        new Test().print();
        new Test3().print();
    }
}
//结果:

//0

//Test2: 2

//Test3: 0

//Test2: 5

 

继承的优点:

1、提高代码的复用性

2、让类与类产生了联系,这是多态的前提

继承的缺点:

会打破封装性

 

JAVA支持单继承和多重继承,不直接支持多继承。

 

当要使用继承体系时:

1、查看该体系的顶层类,了解该体系基本功能

2、创建体系中的最子类,完成功能的使用

比如下段继承代码:

public class Person {
    int num = 4;
    void show() {
        System.out.println(this.num);
    }
}



public class zi extends Person{
    int num = 5;
    public static void main(String[] args) {
        zi z = new zi();
        z.show(); //运行结果为父类中的4!!
    }
}

最开始我以为在子类中调用父类中的show( )打印的是子类中的num,输出结果应为5(因为起初以为继承了父类中的show( )那么函数中的this也应该是指的子类中的对象)。不过事实却是由于子类方法区中没有show()方法,于是子类通过super找到了父类的内存空间(注意方法区中方法仍持有this引用,于是this找到堆内存中new zi()这个这个对象里面的父类的num的值,执行函数),打印了父类中的num=4。如果子类新定义函数和父类中继承的函数重名,则不再去父类寻找(这叫做override—重写),以子类为准。如下面两张图所示(从eclipse中可以看到如果子类中定义了有和父类一样名字的变量则JVM会维护两块内存空间,最顶上那种情况只维护一块变量):

 

 

 

重写/覆盖的注意事项:

1、子类权限必须大于等于父类权限(public最大)

2、函数声明必须一模一样

3、但是如果父类的函数是private,则不是重写,因为父类的无法使用

4、静态函数只能被静态函数重写

5、重写父类方法后,父类方法不能访问

 

什么时候使用覆盖操作?

对一个类进行子类的拓展时,子类要保存父类的功能声明,但是要子类有特有内容时,使用重写

 

MacOS蓝牙连接疑难杂症:从基础排查到高级修复全攻略 本文提供了一份全面的MacOS蓝牙故障排查与修复指南。从基础的菜单栏检查、终端命令诊断,到软/硬重启蓝牙服务、删除配置文件,再到使用blueutil工具、重置NVRAM等高级方法,系统性地解决了蓝牙无法连接、连接不稳定等常见问题。最后还分享了环境干扰排查、预防措施及硬件故障自检方法,帮助用户彻底解决Mac蓝牙连接难题。 阅读详情

相关推荐

Penpot自托管全攻略:5分钟搞定私有化部署(附Docker配置详解)

本文详细介绍了Penpot开源原型设计工具的私有化部署全流程,从Docker基础配置到企业级优化方案。通过分步指南和实战技巧,帮助设计团队快速搭建安全高效的自托管环境,实现数据自主可控。内容涵盖LDAP集成、性能监控、备份策略等关键企业需求,是Penpot私有化部署的完整参考手册。

sugar的博客 1133

方法重写时需要注意的问题有哪些?

在面向对象编程中,方法重写(override)是一种语言特性,它是多态的具体表现,它允许子类重新定义父类中已有的方法,且子类中的方法名和参数类型及个数都必须与父类保持一致,这就是方法重写。 方法重写最简单的示例如下,定义一个父类 Father 和子类 Son,父类中有一个 method 方法,而在子类中会重写 method 方法,具体实现代码如下。父类 Father 实现代码如下: /** * 父类 */ class Father { public void method(String

Monsterof的博客 1334

Java 大视界 -- Java+Spark MLlib 构建智能推荐系统:协同过滤算法实战与优化(441)

Java+Spark MLlib构建智能推荐系统实战 本文详细介绍了基于Java和Spark MLlib构建协同过滤推荐系统的全流程实践方案。主要内容包括: 架构设计:采用离线批处理为主、近实时更新为辅的架构,包含数据采集层、处理层、模型层、推荐生成层、存储层和应用层六大模块,可支撑千万级用户推荐需求。 技术实现: 使用Spark MLlib的ALS算法进行协同过滤模型训练 提供数据清洗、模型训练、推荐生成等核心代码实现 采用MySQL存储推荐结果,支持批量插入和事务保障 生产级优化: 版本化模型存储规避覆

【青云交】华为云云享专家 | 阿里云开发者社区专家博主 技术圈个人影响力前 9 | 博客之星 TOP12 优快云 首位四榜(原力榜 / 作者周榜 / 领军人物 / 综合热榜)榜首,破平台纪录! 苏州地区全榜霸榜,感恩全网十多万粉丝同行! 2539

Java——继承、重写与多态

继承是一种特性,利用继承可以重用现有类生成新类,也是代码重用的一种体现。通过关键字extends继承一个已有的类父类:被继承的类(超类、基类)子类:新的类(派生类)单继承,只有一个直接父类继承可以持续进行,形成复杂的继承层级结构如果一个类的声明中没有使用关键字extends,那么这个类被系统默认为是继承了Object父类Object类是所有类的超类,也就是说,Java中的每一个类都是由Object类扩展而来的。因而每当你创建一个对象,它都将拥有Object类中的全部方法。

qq_40543015的博客 1169

饥荒联机版Mod开发——modmain环境与API深度解析

本文深入解析饥荒联机版Mod开发中的modmain.lua环境与核心API,详细讲解环境表构建原理、API注册与调用时机,并提供高级开发技巧与最佳实践。通过源码分析和实际案例,帮助开发者掌握Mod开发核心技术,解决常见问题,提升开发效率与代码质量。

weixin_30312563的博客 434

关于VS2022创建winform窗体后择项或选择工具箱项加载visionPro控件卡住,窗口未响应解决方法

解决winform加载工具箱选择项卡死问题

xiaokiss_的博客 3210

Java继承与重写

Java继承与重写

AAAWell的博客 2015

将外部电磁近场数据导入 ANSYS HFSS

本博客介绍了如何将电磁近场数据导入 ANSYS HFSS。用户可能需要导入字段,无论是通过分析计算、测量、由其他工具生成还是从提供商处接收的字段,并将其用作实际激励来执行不同类型的分析。以下是导入过程的简要概述,视频链接中提供了完整的演示。为了定义简单基元近场源,HFSS 使用两种外部数据文件。首先,实际位置/字段数据以 .nfd 格式存储。其次,Ansys Near field Descriptor 文件(.and 文件)存储 .nfd 数据的一般几何信息和路径。

jkh920184196的博客 2327

java面向对象-继承、方法重写

继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法。

weixin_43162044的博客 1322

OpenCV实战之人脸美颜美型(八)——大眼(下)

我们需要将上述描述量化表达,以r代表上述变形区域的圆的半径,X表示原始图像像素到变形圆圆心的距离,Y表示像素变形后的其距离变形圆圆心的距离,则其形状大致如下图所示。如下图所示,我们可以规定处理区域为眼睛为圆心的一个圆形,从圆心区域开始图像会放大,但该放大的比例随着距离圆心的距离而变小,直至边缘区域的放大比例为0。不过在实际图像变形操作中我们要从目标图像映射到原图,因此我们需要将X/Y调换,让X表示变形后图像的像素距离变形圆中心的距离,Y表示原图像素距离变形圆中心的距离,则其形状如下图所示。

On my way 901

YOLOv8模型压缩终极方案:LAMP剪枝实战,速度提升不掉点

一个庞大的模型虽然强大,但在实际部署,尤其是资源受限的边缘设备(如无人机、移动电话、嵌入式系统)上,却面临着严峻的挑战:高昂的内存占用、巨大的计算量以及随之而来的高延迟和高能耗。本教程从LAMP剪枝的深刻理论出发,详细解释了它如何通过最小化最坏情况下的L2失真,并借助巧妙的数学简化,最终推导出一种高效、无超参数、层自适应的剪枝策略。它如同为臃肿的模型进行一次精准的“瘦身手术”,通过移除网络中冗余或不重要的权重、神经元甚至整个结构,来显著降低模型的参数量和计算量(FLOPs),从而实现推理加速和资源节约。

LXY_LOVE36的博客 175

Java继承之方法重写

(完成做到重写,都一样,实现功能不一样)(方法名称一样,参数列表不一样)

d0203的博客 282

海康visionmaster开发笔记10-集成HALCON第三方算子到VM工具箱的方法

海康visionmaster开发笔记10-HALCON第三方算子到VM工具箱的方法

视觉人机器视觉的博客 4347

Java的继承与重写

开发工具与关键技术:MyEclipse 10、Java语法 作者:邓婵 撰写时间:2019年 5月 12日 继承(extends)的定义:继承就是子类继承父类的特征和行为,使得子类对象具有父类的实现域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 注意:Java不支持多继承,但支持多重继承。 例子: 这个例子说明子类1继承了父类,子类2继承了子类1,由于子类1继承了父类,而子类2又继...

weixin_44547786的博客 1488

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java中的继承和重写

例如,如果父类方法的访问修饰符是`protected`,那么子类方法的访问修饰符可以是`protected`或`public`,但不能是`private`。例如,如果父类方法的访问修饰符是`protected`,那么子类方法的访问修饰符可以是`protected`或`public`。在上面的例子中,`Dog`和`Cat`都是`Animal`的实例,但调用`makeSound()`方法时,会根据实际对象的类型调用相应的方法。- **方法重写**:子类可以重写父类的方法,以实现不同的行为。cat.eat();

2301_77081232的博客 1741

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java继承重写_Java 继承与重写

1.类的继承1)继承父类:所有子类所共有的属性和行为子类:子类所特有的属性和行为通过extends关键字来实现类的继承子类(Sub class)可以继承父类(Super class)的成员变量及成员方法,同时也可以定义自己的成员变量和成员方法Java语言不支持多重继承,一个类只能继承一个父类(单一继承),但一个父类可以有多个子类继承具有传递性,子类的子类可以继承父类的父类的成员变量及成员方法2)继...

weixin_39617215的博客 299

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

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

Java的继承与方法重写

Java的继承 继承的本质是对一批类的抽象。 extends关键字,意为拓展,其内子类是对父类的扩展。public class Student extends Person,意为Student类继承了Person的所有公开属性,以及方法。 继承属于类之间的一种关系,此外还有依赖、组合聚合等。 Java中只有单继承,没有多继承,就是一个子类只能有一个父类。 修饰符: public:公共的 可继承 private:私有的 不可继承 default:默认的 可继承 protect

ilzy957的博客 4099

Java中的继承与重写

注:本次所讲的继承是为重写做铺垫 一、继承 1、为什么? 在java语言中为了简化相似类之间的相同属性及方法的书写,java语言中采用继承来简化代码; 2、是什么? 继承在java语言中是通过关键字extends实现的,假定我们定义两个类 Father、Son;若使Son继承Father类中的部分方法和属性——采用 pub...

weixin_45104211的博客 949

Java继承与重写&cpyhton

面向对象编程中,private成员在不同的语言中继承的情况有所不同。以下是Java、Python、C++和C(实际上C语言不支持面向对象编程中的类和继承概念,但有些C风格的面向对象实现)对private。

m0_68339197的博客 1212

java中的继承与重写_Java继承和重写

继承的本质是对某一批类的抽象,从面实现对现实世界更好的建模.extends的意思是"扩展".子类是父类的扩展.JAVA中类只有单继承,没有多继承!继承是类和类之间的一种关系.除此之外,类和类之间的关系还有依赖,组合,聚合等.继承关系的俩个类,一个为子类(派生类,),一个为父类(基类).子类继承父类,使用关键字extends来表示.子类继承父类 就拥有父类的全部方法子类和父类之间,从意义上讲应该是具...

weixin_35993037的博客 352

java继承和重写

1. 继承 2. 方法的重写 3. final关键字 4. 访问修饰符 5. 根类Object 6. 基本类型的包装类

nie6668888的博客 866

java中继承与方法重写

继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模·extends的意思是“扩展”。子类是父类的扩展java中只有单继承,没有多继承(一个儿子只能有一个爸爸,一个爸爸可以有多个儿子)·继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等·继承关系的两个类,一个为子类(派生类),一个为父类(基类)。

m0_62691847的博客 540

JAVA继承与重写

概念:继承是面向对象语法三大特征之一,继承可以降低代码的沉余度,提高编程的效率。通过继承子类可以随意调用父类中的某些属性与方法,一个子类只能继承一个父类,一个父类可以被多个子类继承。它就好比与我们显示生活中孩子继承父亲的财产。重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法,就好比金毛与哈士奇他的特征都是来自狗,仓鼠与松鼠他们他们的特征来自老鼠,而他们身上的不同属于基因突变就相当于重写 继承的特点: 1):java中只支持单根继承,即一个类只能有一个直接父类

ypf3442354429的博客 1830
上一篇: BST及其各种操作(C实现)
下一篇: JAVA 异常
donCoder
博客等级 码龄9年 65粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值