重载、重写以及构造方法

【Java基础篇】重载与重写、构造方法的区别详解 提到重载与重写,大家最熟悉的地方莫过于自己封装一个枚举类或者框架中的底层实现类吧?我们经常用着底层的框架技术,但是底层的原理可能不太明白。下面我就来通过Java类的三大特性——封装、继承、多态的具体实现:重载与重写来深入剖析Java的设计原理,让大家可以简简单单写底层源码!... 阅读详情

重载(overload)

1.重载建立在继承之上的。
2.只跟重载方法的参数和个数有关系。
3.属于多态中的一种。
4.子类可以对父类继承过来的方法的重载。

无参和带参的构造方法就属于重载
1.参数的个数不同
2.参数的类型不同

在People文件里:
这里写图片描述
在Test(测试)文件里:
这里写图片描述


重(覆)写(overrite)

概念:子类中出现与父类一模一样的方法时,会出现子类方法将父类方法覆盖的情况,这种情况成为重写或者复写

特点:
1.建立在继承基础之上
2.子类对象执行这个重写方法时,只执行此重写方法,不会执行从父类继承过来的同名方法。重写方法覆盖从父类继承过来的方法。
3.子类的权限不能小于父类的权限。

重写注意事项
(1)父类中的私有方法不可以被重写,覆盖!
(2)子类重写父类方法后,继续使用父类的方法时候,可以使用super调用
(3) 重写时,子类的方法的访问权限要大于或者等于父类成员方法的访问权限
(4)静态方法只能被静态方法覆盖
(5)子类对于父类的功能有增强需求的时候,可以重写父类的方法以增强其功能!

重载何时使用:
当一个类中需要完成某个相同功能,但是方法的参数不同需要分别进行操作时!

重写与重载的区别

重写:子父类之间,方法完全相同(返回值、方法名、参数列表), 但是子父类之间的方法体必须不同,否则没有意义!
重载:同一个类中,方法名相同,参数列表不同,与返回值无关!(参数列表:包括两项:参数个数,对应参数的数据类型)


构造方法

a、子类中所有的构造方法默认都访问父类中无参构造

b、每个构造方法的第一行是super();super(参数列表);如果把这两行代码放在非第一行位置会报错

c、根据构造方法的特性,在手动给出任意一个构造方法的时候,之前默认的无参构造会被覆盖,此时具有继承关系的时候,子类之前默认存在的每个构造都调用无参构造super();失效,此时必须在每个构造方法中手动给出super(参数列表);的方式直接或间接调用之前手动在父类中给出的构造

d、构造方法执行了一定会创建相应对象吗?
不一定,当具有继承关系的类时,子类创建对象的时候会调用父类的构造方法,用来初始化父类的成员变量这个时候父类的构造执行了,但是内存中并没有父类的对象!

e、构造方法是否可以被重写或者继承?
不可以,因为构造方法名需要与类名相同,假如出现继承或者重写关系,就会有子类中有一个与父类的类名相同的构造方法,但是又由于构造方法需要与类名相同,此时子类类名需要与构造相同,这个时候就会出现父类与子类的类名相同,父类类名==构造方法名==子类类名,不能存在同名的类!

类结构(代码模型):

Public class Phone{
// 1.属性的定义区域
Pricate double price;
// 2.构造方法
public Phone(){
}
// 3.setter和getter定义区域
public void setBrand(String brand){
}
// 4.普通方法
Public void call(){
}
}
POJO 简单的java类(MVC中M即model)
POJO 有哪些要求?

1 类名称必须有意义。明确可以描述某一类事物,比如动物,汽车。。。
2 类中的属性必须private修饰,封装后的属性使用setter和getter方法
3 类中可以定义多个构造方法,但是必须保留一个无参的构造方法(反射使用)
4 类中不允许出现任何的输出语句,所有的输出都通过调用来完成。
5 类中可以提供一个获取对象完整信息的方法
6 类中没有复杂的逻辑结构(判断,循环几乎没有),只是一个单纯显示类的基本信息。

构造方法、方法的重载以及方法的重写 Java中的构造方法、方法的重载以及方法的重写。 (1) 什么是方法签名? 方法签名就是方法名称和参数列表的统称。即:方法签名=方法名称+参数列表。 (2) 构造方法 Java中的每一个类都有一个默认的无参构造方法,构造方法在类被实例化的时,自动被调用。 构造方法的作用 初始化参数。即:给成员变量赋初值。 调用方法。 构造方法的特征 方法名与类名相同,并且没有返回值(连void都没... 阅读详情

相关推荐

Visual Studio 2022 社区版安装指南:从下载到配置的完整流程

本文详细介绍了Visual Studio 2022社区版的完整安装与配置流程,包括系统要求检查、官方下载步骤、工作负载选择、安装位置配置等关键环节。作为微软推出的免费集成开发环境,VS2022社区版支持多种编程语言,适合个人开发者和小型团队使用。文章还提供了常见问题解决和性能优化技巧,帮助用户高效完成开发环境搭建。

weixin_28829339的博客 883

Java入门教程||Java 继承||Java 重写(Override)与重载(Overload)

方法的重写 (Overriding) 和重载 (Overloading) 是 java 多态性的不同表现,重写是父类与子类之间多态性的一种表现,重载可以理解成多态的具体表现形式。(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载 (Overloading)。(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写 (Overriding)。

爱编程的鱼的博客 1953

QComboBox设置最大显示数量多余的用滑动条,以及QComboBox::setMaxVisibleItems()不起作用的问题

QComoboBox是Qt封装的一个选择框的东西,但是我在使用过程中有一点感觉很不好,如图: 不论你往里面添加多少个它都会给你显示全部,甚至给你铺满全屏,后来看了官方文档发现有个setMaxVisibleItems()的方法,我欣喜若狂啊,终于特么的能解决了,但是,很遗憾,不知为啥,我设置上之后并没有起作用,依然会显示全部,后来搜了百度发现有个人是这样解决的 QComboBox *box = ne...

Aboveground的博客 4919

我的Java学习笔记

<br />说明:如果在修饰的元素上面没有写任何访问修饰符,则表示friendly。<br /><br />作用域    当前类 同一package 子孙类 其他package <br />public     √     √          √      √ <br />protected  √     √          √      × <br />friendly   √     √          ×      × <br />private    √     ×          ×   

xieqzsu的专栏 496

别再手动配电脑了!手把手教你用Windows Server 2022搭建企业AD域(附DNS配置避坑指南)

本文详细介绍了如何使用Windows Server 2022搭建企业AD域,提升20+终端的管理效率。通过实战案例和避坑指南,解析AD域的核心价值、部署步骤及DNS配置技巧,帮助企业实现集中权限管理、安全策略统一部署,显著降低IT运维成本。

weixin_30652897的博客 349

【从零开始学产品经理】项目立项实战(1)——基本方案与可行性分析:基于微信小程序的记账本

主要阶段:立项-设计-开发-测试-上线-运营-总结。

Ckiyvo的博客 3211

构造器、继承、重写、多态

构造器、继承、重写、多态

m0_65886290的博客 304

JMeter脚本录制-快速上手篇

有的项目应用场景下,压测时,需要考虑带宽因素,压测不只是压测接口,静态资源也要一起压测。一般来说,静态资源比较多,如果一个个手工去写请求,是比较繁琐的,此时,可以使用Jmeter的脚本录制功能。 步骤1,创建脚本录制模版。 JMeter菜单:文件>模版,下拉选择到Recording,点击“Create”按钮; 填写录制参数: hostToRecord:填写要录制的主机域名,例如,我们这里填入:www.baidu.com schemeToRecord:填写要录制的模式,例如,htt...

软件测试大叔 5734

Overload(重载)、Override(覆盖)、Overwrite(重写) 三者区别

Overload(重载):在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数或返回值不同(包括类型、顺序不同),即函数重载。 (1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual关键字可有可无。 Override(覆盖):是指派生类函数覆盖基类函数,特征是: (1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)...

醉如泥的博客 1127

〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)

测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容,其中 "操作" 这一部分又是建立在 "selenium" 元素定位的基础之上的。所以对元素对象的定位就显得越发的重要,接下来我们就学习一下常用的元素定位方法有哪些。......

易编橙 · 终身成长社群,相遇已是上上签! 4万+

Unity GameObject 核心机制深度解析:从底层结构到工程实践

从底层机制讲透 Unity GameObject:托管壳加原生芯的双层对象模型如何制造假 null 陷阱、Transform 层级与组件通信的原理、生命周期回调的确切顺序。文章同时给出 Instantiate 成本分析与对象池等高频场景的工程实践。

游戏人生 40

使用无参构造简单实现spring IOC操作

咱们先来一遍不用IOC的平常方法,也就是new出对象 首先创建一个实体类,简单一点就写一个属性就好了,重写下咱们的无参构造 可以看到我只是new了一下对象,无参构造方法便已经执行了 接下来使用spring IOC 方式使用这个对象 spring依赖我放在这里 <dependencies> <!-- Spring核心依赖 --> <dependency> <groupId>org.springframework&l..

Saber__Love的博客 245

基于机器学习的网络入侵检测系统设计与实现

本文设计并实现了一个基于机器学习的网络入侵检测系统,采用随机森林模型结合KMM算法优化,使用CICIDS2017数据集进行训练。系统包含完整的数据预处理流程、特征工程、模型调优和远程部署方案。实验结果表明,该系统能有效识别多种网络攻击类型,在检测准确率和误报率方面表现优异。研究为网络安全防护提供了新的技术思路和实用工具,具有重要的应用价值。

huanghm88的专栏 318

Java构造方法 重载与重写

内容部分引自《Java语言程序设计》一书,摘抄以便记忆和复习 1.Java中的构造方法 构造方法的特性: 必须具备和所在类相同的名字 没有返回值类型,连void 也没有 构造方法是在创建一个对象使用 new 操作符时候调用的 构造方法的作用是初始化对象,也可以重载(即-可以有多个同名的构造方法,但是需要有不同的签名) 一个类可以不定义构造方法,类中会隐含创建一个方法体为空的构造方法(类中...

zranfly 2万+

android 蓝牙通讯demo

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

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

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

构造方法、方法重载、方法重写

构造方法、方法重载、方法重写的理解 和 相关概念的介绍

菜就多练! 693

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

构造方法 重写 和 重载

构造方法:是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。 重写:当一个子类继承一个父类,而子类中的方法与父类中的方法的名称,参数个数、类型都完全一致时,就称子类中的这个方法重写了父类中的方法。 重载:一个类中的方法与另一个...

alan800800的博客 286

JAVA知识复盘004——构造方法能不能被重载,构造方法能不能被重写?

在回答这两个问题之前,首先先回顾:什么是构造方法?构造方法的特点是什么? 概述:构造方法存在于类中,给对象数据(属性)初始化; 特点:方法名与类名一样;无返回值无void; 默认构造方法:我们不创建一个构造方法时,系统默认提供一个无参构造;当我们创建一个构造方法时,系统不再提供无参构造,所以在实际项目中,全部手动给出无参构造 其次什么是重载?什么是重写?  重载:存在于在一个类中,...

十七的博客 3万+

什么是构造方法?能否被重写或重载?

构造方法(Constructor)是一种特殊的方法,主要用于在创建对象时初始化对象的成员变量。1、与类同名且无返回值类型构造方法的名称必须与类名完全相同,且不能声明返回值类型(包括void例如,的构造方法必须命名为Person(),而非其他名称。2、自动调用与初始化对象当通过new关键字实例化对象时,构造方法会被自动调用,用于初始化对象的属性或执行必要的操作(如资源分配、参数校验等)。public Rectangle(int w, int h) { // 构造方法width = w;

破损的天堂鸟博客 993

java-重载、重写、构造方法重载

1.重载是指在一个类或子类中,方法的名称相同,方法的参数个数、类型不同。 public class OverLoad { /* * //定义一个无参数的action方法 public void action(){ } //定义了一个返回值为String的action方法 public String action(){ } */ /* * //...

weixin_44019125的博客 326

Java中构造方法的重载、重写及注意事项

构造方法:百度百科给出的定义为(构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。) 由定义不难理解: 1.构造方法的作用是给对象进行初始化 。 2.构造方法的格式...

LOL_toulan的博客 4064

构造方法+方法重载重写

构造方法+方法重载重写 构造方法 java可以向C#一样,通过无参或带参数的构造方法(Constructor)完成赋值的初始化 在Penguin类中增加一个无参的构造方法Penguin(),如下 /** * 宠物企鹅类,测试无参构造方法 */ public class Penguin{ String name = "无名氏"; //昵称 int health = 100; //健康值 int love = 0; //亲密度 String sex =

weixin_47321079的博客 454

构造方法可不可以被重写和重载?

构造方法可以被重载。 构造方法不可以被重写,因为重写发生在父类和子类之间,要求方法名称相同,而构造方法的名称是和类名相同的,而子类类名不会和父类类名相同,所以不可以被重写。 ...

weixin_45454224的博客 1万+

构造方法和方法的重载和重写

构造方法 注:默认的构造方法的访问权限是跟随class的访问权限,   如果编写一个构造方法,既没有调用 super() 也没有调用 this(),编译器会自动插入一个调用到父类构造方法中,而且不带参数。 super关键字的用法 调用父类构造方法 调用父类的方法 值得注意的是: super()必须放在构造方法的最顶端。 不能在...

dianlu8638的博客 299

构造方法能够被重载,不能被重写

下图说明了构造方法可以被重载 下图错误提示是无效的方法声明,需要返回类型,这里就可以说明构造方法是不能被重写的 下图中加入了void 下图中添加了String 返回类型 下图中,因为BB类继承了AA类,即BB类的父类是AA。下图中执行new BB()时,先去执行父类的构造方法,再执行自身的构造方法。执行到new AA()是只执行AA的构造方法 ...

zhaomengxia123的博客 3311

java中方法的重载、构造方法、方法重写

关于Java中名字,初学者对于某些知识点容易出现混淆,本文重点介绍Java中的构造方法、方法重载、方法重写 本文提醒: 1.本文代码基于:Jdk1.8-191 2.本文代码工具:eclipse2018.9 3.使用系统:windows10 4.本文每一段代码均为一个类 正文开始 构造法方法与方法重载容易混淆的原因在于,他们在一个类中都可以存在多个名字都相同的方法,本文将介绍其区别 一、构造方法 构...

dajiangyou123456的博客 227

方法重写、构造方法、方法重载

方法重写当子类继承父类的方法不能满足自身的需要时,子类可以重写父类的方法 规则 实现继承修饰符的访问权限要大于或等于父类方法名、返回值类型、参数列表必须相同构造方法 * 语法访问修饰符 类名(){} 使用 1、当一个类中没有定义构造方法,JVM会默认创建一个public修饰的无参数的构造方法;2、如果有自定义的构造,JVM就不会再创建默认的构造方法3、通常使用在初始化当前类的成员属性的值方法重

Jackson_Yi的博客 3184
上一篇: Java类的三大特性总结
下一篇: String 字符串的创建、使用和操作
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值