JAVA之(方法的重载与重写、this关键字、super关键字)

方法的重载与重写

  • 一、方法的重载与重写
    • 1、回顾方法的定义
    • 2、重载的概念
    • 3、重写
  • 二、this关键字
    • 1、何为this方法
    • 2、使用方法
      • (1)在构造方法中指构造器所创建的新对象
      • (2) 方法中指调用该方法的对象
      • (3) 在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法
    • 3、注意事项
  • 三、super关键字

一、方法的重载与重写

1、回顾方法的定义

权限修饰符   返回值声明   方法名称(参数列表){方法中封住样的逻辑功能;return 返回值【返回值void类型,不用写return】
}

2、重载的概念

(1) 必须同一个类中
(2) 方法名相同
(3)方法的参数的个数,顺序或类型不同
(4) 与方法的修饰符和返回值都没有关系

package com.itheima.springboottest;import javax.print.DocFlavor;public class Person {String name;int age;String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}private void myPrint(){System.out.println("这里是父类重载方法1");}private int myPrint(int age,String name){System.out.println("这里是父类重载方法1");return 1;}private int myPrint(String name,int age){System.out.println("这里是父类重载方法1");return 1;}}

在这里插入图片描述

3、重写

(1) 重写发生在父类无法满足子类需求的时候,需要进行重写
(2) 重写的注意事项
① 重写的方法必须要和父类一模一样(包括返回值类型,方法名,参数列表)
② 重写的方法可以使用@Override注解来标识
③ 子类中重写的方法的访问权限不能低于父类中方法的访问权限
private<默认<protectde<public

package com.itheima.springboottest;public class Family{protected  void  myPrint(){System.out.println("我是父类方法");}
}class Firstson extends Family{public void  myPrint(){System.out.println("我是子类重写父类方法");}
}class FamilyTest {public static void main(String[] args){Firstson son = new Firstson();son.myPrint();}
}

在这里插入图片描述

二、this关键字

1、何为this方法

JAVA为了解决变量的命名冲突和不确定性问题,引入关键字this代表所在方法的当前对象的引用;

2、使用方法

(1)在构造方法中指构造器所创建的新对象

public class B{A a;public B(A a){this a = a;}
}

(2) 方法中指调用该方法的对象

public class Baby{public void wakeup(){System.out.println("宝宝醒了");}public void eat(){this.wakeup();System.out.println("宝宝醒了");}}

(3) 在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法

public void setName(String name){this.name=name;
}

3、注意事项

this只能在类的非静态方法中使用,静态方法和静态代码块中绝对不能出现this
static修饰的方法在类加载中就已经存在了,单数对象在创建时才会在内存中生成

三、super关键字

1、 super是存在于子类方法中,用于指向子类对象中的父类对象,可以访问父类的属性,函数以及构造函数
2、 子父类存在着同名的成员(包括变量和方法)时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员
3、 默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法

package com.itheima.springboottest;public class Family{protected  void  myPrint(){System.out.println("我是父类方法");}
}class Firstson extends Family{public void  myPrint(){super.myPrint();System.out.println("我是子类重写父类方法");}
}class FamilyTest {public static void main(String[] args){Firstson son = new Firstson();son.myPrint();}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ARMv8/v9 GIC 系列 6 -- 中断优先级详细介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 Interrupt prioritizationInterrupt Priority ValueSGI And PPI Priority SetSecure And Non-secure Priority AccessInterrupt prioritization 在ARM GICv3和GICv4架构中,中断的优先级化(prioritization)是通过以下几种方式来描…

centos7.9 rpm包安装mysql8.2.0数据库、root设置客户端登录、配置并发、表名大小写敏感、启动重启指令等记录

centos安装mysql8数据库,下载的是rpm-bundle.tar包,这样可以在内网环境离线安装,工作中医院的服务器很多也是内网的,所以这里记录下rpm-bundle.tar包安装的步骤。 lscpu 查看处理器是x86还是arm 下载对应的版本 bundle tar包 ((mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar))…

2023年了,还在手动px转rem吗?

px-to-rem 使用amfe-flexible和postcss-pxtorem在webpack中配置px转rem npm i amfe-flexible -Snpm i postcss-pxtorem -D在main.js中 import flexible from amfe-flexible Vue.use(flexible);index.html中 <meta name"viewport" content"widthdevice-w…

onMouseEnter和onMouseOver区别

onMouseEnter 和 onMouseOver 是两个在 JavaScript 中用于处理鼠标事件的不同事件。 onMouseEnter&#xff1a; 当鼠标指针进入元素的边界时触发。事件只在鼠标从元素外部进入到元素内部时触发一次&#xff0c;不会冒泡。如果鼠标指针进入了元素的子元素&#xff0c;不会触发父…

Web3D引擎,three.js堪称扛把子,Babylon.js差点意思。

涉及到Web3D开发&#xff0c;Three.js和Babylon.js是两个备受推崇的引擎。它们都是基于WebGL的开源3D引擎&#xff0c;用于创建交互式的3D图形应用程序&#xff0c;但要细论起来&#xff0c;three.js普及度远超Babylon .js. 一、二者的介绍 Three.js&#xff1a; Three.js 是一…

13、广告-算法优化

算法优化 算法优化在程序化广告中起着至关重要的作用&#xff0c;通过优化算法可以提高广告投放的精准度和效果。算法优化涉及多个方面&#xff0c;包括广告投放策略、用户行为分析、竞价算法和实时数据处理等。 &#xff08;一&#xff09;广告投放策略优化 广告投放策略是…

Socket编程用到的函数TCP UDP实例

最基本的 Socket 模型 参考这次答应我&#xff0c;一举拿下 I/O 多路复用&#xff01; (qq.com) Socket编程详解-CSDN博客 Socket是一种通信机制&#xff0c;通过它可以在不同主机之间进行数据交换。在Socket编程中&#xff0c;有两种常见的通信模式&#xff1a;客户端-服务…

PIP换源的全面指南

##概述 在Python的世界里&#xff0c;pip是不可或缺的包管理工具&#xff0c;它帮助开发者安装和管理Python软件包。然而&#xff0c;由于网络条件或服务器位置等因素&#xff0c;直接使用默认的pip源有时会遇到下载速度慢或者连接不稳定的问题。这时&#xff0c;更换pip源到一…

在Linux操作系统中去修复/etc/fstab文件引起的系统故障。

如果/etcfstab文件中发生错误&#xff0c;有可能导致系统无法正常启动。 比如&#xff1a;系统里的一块磁盘被删除&#xff0c;但是/etc/fstab中关于这块磁盘的信息依然被保存在文件/etc/fstab中。 主要看倒数后两行&#xff0c;系统提示&#xff0c;敲ctrlD或者是直接输入密码…

Linux muduo 网络库

主要记录示意图和知识点框架&#xff1a; 1、阻塞、非阻塞、同步、异步 在处理IO的时候&#xff0c;阻塞和非阻塞都是同步IO&#xff0c;只有使用了特殊的API才是异步IO。 2、五种IO模型&#xff1a; 阻塞、非阻塞、IO复用、信号驱动、异步IO 3、muduo网络库 muduo网络库给用…

【Java】垃圾回收学习笔记(一):Root Search 根可达算法+垃圾回收的起点

文章目录 1. 引用计数法优点缺点 2. 可达性分析 Root Search2.1 那些对象是GC Roots2.2 引用的分类2.3 回收方法区 3. 实现细节3.1 GC的起点&#xff1a;节点枚举OopMap&#xff1a;帮助高效的根节点枚举 3.2 何时开始GC&#xff1a;安全点与安全区域如何选取安全点如何让程序进…

rocketmq-console可视化界面功能说明

rocketmq-console可视化界面功能说明 登录界面OPS(运维)Dashboard(驾驶舱)Cluster(集群)Topic(主题)Consumer(消费者)Producer(生产者)Message(消息)MessageTrace(消息轨迹) rocketmq-console是rocketmq的一款可视化工具&#xff0c;提供了mq的使用详情等功能。 本章针对于rock…

玫瑰千层烤饼:味蕾的芬芳盛宴

在美食的缤纷世界里&#xff0c;有一种独特的存在&#xff0c;它融合了玫瑰的芬芳与烤饼的酥脆&#xff0c;那便是令人陶醉的甘肃美食玫瑰千层烤饼。食家巷玫瑰千层烤饼&#xff0c;宛如一件精心雕琢的艺术品。每一层薄如纸张的面皮&#xff0c;都承载着制作者的细腻与用心。层…

conda 重命名虚拟环境

方法1——克隆再删除 先使用–clone命令复制一份老环境&#xff0c;然后改名并删除老环境1。 conda create --n newName --clone oldNameconda remove --n oldName --all 但是&#xff0c;如果原始环境比较大&#xff0c;clone的时间会比较长。 方法2——conda rename 从Con…

【qt】TCP 服务端怎么收到信息?

上一节,我已经讲了,TCP的监听,是基于上一节的,不知道的可以看看. 当我们的TCP 服务器 有 客户端请求连接的时候,会发出一个信号newConnection(). 在TCP服务端与客户端的通信中,我们需要使用到套接字 QTcpSocket类. 套接字相当于是网络通信的接口,服务段和客户端都要通过它进行通…

Gitlab Fork Workflow(协作工作流)

Gitlab Fork WorkFlow&#xff08;协作工作流&#xff09; Fork WorkFlow用于团队间的协作开发。在开发过程中&#xff0c;我们都需要将最新修改的代码合并到代码库上&#xff0c;在代码合并之前&#xff0c;为了保证代码符合上传要求&#xff08;符合需求、代码规范等&#xf…

如何在应用运行时定期监控内存使用情况

如何在应用运行时定期监控内存使用情况 在 iOS 应用开发中&#xff0c;实时监控内存使用情况对于优化性能和排查内存泄漏等问题非常重要。本文将介绍如何在应用运行时定期监控内存使用情况&#xff0c;使用 Swift 编写代码并结合必要的工具和库。 1. 创建桥接头文件 首先&…

vue学习笔记之组件传值

说起组件传值&#xff0c;首先要介绍再vue中什么是组件。 组件&#xff08;Component&#xff09;&#xff0c;是vue中很强大的一个功能&#xff0c;可以将一些可重用的代码进行重用。所有的vue组件同时也是vue实例&#xff0c;可以接受使用相同的选项对象和提供相同的生命周期…

集合复习(java)

文章目录 Collection 接口Collection结构图Collection接口中的方法Iterator 与 Iterable 接口Collection集合遍历方式迭代器遍历增强 for 遍历 List&#xff08;线性表&#xff09;List特有方法ArrayList&#xff08;可变数组&#xff09;ArrayList 底层原理ArrayList 底层原理…

2407C++,从构生成协议文件

原文 protobuf会根据proto文件生成c对象及其序化/反序化方法,而iguana的struct_pb则是以结构为核心,编译期反射来生成序化/反序化代码. 有人提出能不能按proto文件输出结构呢,这样就可给其它语言用了,很好建议,实现起来也比较简单. protobuf是从proto文件到c对象,而struct_p…