java方法重写学习笔记

方法重写介绍

  • 子类和父类有两个返回值,参数,名称都一样的方法, 子类的方法会覆盖父类的方法。
  1. 调用
public class Overide01 {public static void main(String[] args) {Dog dog = new Dog();dog.cry();}
}
  1. Animal类
public class Animal {public void cry() {System.out.println("动物叫");}
}
  1. Dog类
public class Dog extends Animal{
//    public void cry() {
//        System.out.println("狗叫");
//    }
}

我们把Dog类的cry方法注释掉了,就会到父类里面去找。

方法重载三个细节

  1. 子类方法,形参列表,方法名和父类完全一致

  2. 子类的返回类型如果和父类不同,要保证子类返回的类型父类返回类型子类

  3. 子类的方法不能缩小父类方法的访问权限范围

  4. 调用

public class Overide01 {public static void main(String[] args) {Dog dog = new Dog();dog.cry();}
}
  1. Animal类
public class Animal {public void cry() {System.out.println("动物叫");}public Object getSth() {return null;}protected First getA() {return null;}
}
  1. Dog类
public class Dog extends Animal{public void cry() {System.out.println("狗叫");}//String正好是Object的子类,反过来就会报错public String getSth() {return null;}public Second getA() {return null;}
}class First {}class Second extends First {}

在这里插入图片描述

重写的练习

在这里插入图片描述

  • 刚开始的误区
  1. 每个Say方法写成void的返回类型,每个类型打印自己的属性,没有体现出来继承的优势,
  • 改进
  1. 父类的Say方法的返回类型写为String类型,返回父类自身的属性
  2. 子类的Say方法的可以用super关键字直接调用父类的方法,在此基础上,再加上自身的属性。

代码如下:
Person类:

public class Person {Person(String name, int age) {this.m_Name = name;this.m_Age = age;}String say () {return "name = " + m_Name +  "age = " + m_Age;}public String getName() {return m_Name;}public int getAge() {return m_Age;}private String m_Name;private int m_Age;
}

Student类

public class Student extends Person {String Say () {return super.say()  +  "id = " + m_Id + "score = " + m_Id;}Student(String name, int age, String id, double score) {super(name, age);this.m_Id = id;this.m_Score = score;}private String m_Id;private double m_Score;
}

调用

public class OverrideExercise {public static void main(String[] args) {Person lfm = new Person("lfm", 19);System.out.println(lfm.say());Student lfm314 = new Student("lfm", 19, "314", 88.5);System.out.println(lfm314.Say());}
}

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

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

相关文章

什么是ESLint?它有什么作用?

ESLint 是一个用于 静态代码分析 的工具,专门检测 JavaScript/TypeScript 代码中的潜在问题和风格违规。它通过预定义的规则集帮助开发者保持代码的一致性和质量,是前端工程化的核心工具之一。 一、ESLint 的核心作用 1. 错误检查(Error Detection) 识别语法错误、未定义变…

Docker的网络介绍

网络简单介绍 在介绍 Docker 的网络模式之前,先简单说下我们在使用 Vmware 虚拟机中的网络模式,形成对比,更好理解。 1、Vmware 中的网络模式 1.1、VMnet0(桥接模式) 虚拟机通过宿主机的物理网卡直接连接到外部网络…

Netty学习专栏(六):深度解析Netty核心参数——从参数配置到生产级优化

文章目录 前言一、核心参数全景解析1.1 基础网络层参数1.2 内存管理参数1.3 水位线控制1.4 高级参数与系统级优化 二、生产级优化策略2.1 高并发场景优化2.2 低延迟场景优化 总结 前言 在分布式系统和高并发场景中,Netty作为高性能网络通信框架的核心地位无可替代。…

计算机网络学习(六)——UDP

一、UDP UDP(User Datagram Protocol,用户数据报协议)是传输层的一种协议,和 TCP 并列。与 TCP 不同,UDP 是无连接、不可靠、面向报文的协议,它的设计目标是追求更快的数据传输速度和更小的开销。 UDP 为…

vue3文本超出三行显示省略号,点击查看更多显示全部文本

只有一行时&#xff08;不显示展开按钮&#xff09;&#xff1a; 话不多说&#xff0c;上码 ~template <el-col :span"24"><el-form-item :label"$t(warningOrgNames_)"><div class"content-box" ref"contanierRef"…

手写Tomcat(一)

一、Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。 1.1 Tomcat基本架构 Servlet接口文件中定义的方法有以下…

第三节_PySide6中Qt Designer 的基础使用_上篇

文章目录 前言一、Qt Designer简介1.什么是 Qt Designer&#xff1f;2.核心功能3.核心优势 二、Qt Designer界面介绍1.主窗口的创建2.窗口五大区域的简单介绍 三、界面布局 Layout1.窗口布局方式介绍2.UI布局技巧概述3.UI布局实战应用 总结 前言 第二节_PySide6项目创建流程介…

行列式的线性性质(仅限于单一行的加法拆分)

当然可以&#xff0c;以下是经过排版优化后的内容&#xff0c;保持了原始内容不变&#xff0c;仅调整了格式以提升可读性&#xff1a; 行列式的线性性质&#xff08;加法拆分&#xff09; 这个性质说的是&#xff1a;如果行列式的某一行&#xff08;或某一列&#xff09;的所有…

Git使用说明

配置Git 确定已经安装了Git, 通过以下的命令配置全局的邮箱和用户名 git config --global user.email "your@xx.com" git config --global user.name "yourname" 初始化本地仓库 首先,打开终端并切换到存放你代码的项目目录。接着执行以下命令,将该…

【后端高阶面经:缓存篇】36、如何保证Redis分布式锁的高可用和高性能?

一、分布式锁核心挑战:从单机到分布式的跨越 (一)分布式锁的本质需求 互斥性:同一时刻仅一个客户端持有锁容错性:节点故障时锁仍有效(避免单点)原子性:加锁/释放锁操作原子完成可重入性:支持同一客户端多次获取同一把锁(二)Redis天然优势 单线程模型保证操作原子性…

【后端高阶面经:MongoDB篇】40、怎么优化MongoDB的查询性能?

一、索引优化&#xff1a;构建高效查询的基石 &#xff08;一&#xff09;索引类型与适用场景 1. 五大核心索引类型 索引类型适用场景示例代码性能影响单字段索引单条件查询&#xff08;如用户ID、状态字段&#xff09;db.users.createIndex({ user_id: 1 })低复合索引多条件…

Linux wget 常用命令详解

目录 1.1 工具定位 基础下载示例 二、高效下载参数详解 2.1 下载控制类 2.2 文件管理类 2.3 网络优化类 三、高级应用场景 3.1 递归下载与整站镜像 3.2 自动化下载实践 3.3 安全下载配置 四、参数速查手册 4.1 常用参数汇总 1.1 工具定位 基础下载语法 wget [选项…

Pytorch中文文本分类

本文为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 将对中文文本进行分类&#xff0c;示例如下&#xff1a; 文本分类流程图 1.加载数据 import time import pandas as pd import torch from torch.utils.data import DataLoader, random_split impo…

13.「极简」扣子(coze)教程 | 小程序UI设计进阶(三)让界面动起来,实操讲透“聚焦”事件

前一期大师兄介绍了扣子平台组件的两种状态“禁用”和“加载”。这两种方法使控件可以通过简单设置表示出更多的运行状态。今天大师兄将详细介绍控件的一种事件“聚焦”。 扣子&#xff08;coze&#xff09;编程 「极简」扣子(coze)教程 | 小程序UI设计进阶 II&#xff01;让…

剑指offer11_矩阵中的路径

矩阵中的路径 请设计一个函数&#xff0c;用来判断在一个矩阵中是否存在一条路径包含的字符按访问顺序连在一起恰好为给定字符串。 路径可以从矩阵中的任意一个格子开始&#xff0c;每一步可以在矩阵中向左&#xff0c;向右&#xff0c;向上&#xff0c;向下移动一个格子。 如…

腾讯2025年校招笔试真题手撕(三)

一、题目 今天正在进行赛车车队选拔&#xff0c;每一辆赛车都有一个不可以改变的速度。现在需要选取速度差距在10以内的车队&#xff08;车队中速度的最大值减去最小值不大于10&#xff09;&#xff0c;用于迎宾。车队的选拔按照的是人越多越好的原则&#xff0c;给出n辆车的速…

《三维点如何映射到图像像素?——相机投影模型详解》

引言 以三维投影介绍大多比较分散&#xff0c;不少小伙伴再面对诸多的坐标系转换中容易弄混&#xff0c;特别是再写代码的时候可能搞错&#xff0c;所有这篇文章帮大家完整的梳理3D视觉中的投影变换的全流程&#xff0c;一文弄清楚这个过程&#xff0c;帮助大家搞清坐标系转换…

Ini配置文件读写,增加备注功能

1.增加备注项写入 例: #节点备注 [A] #项备注 bbb1 ccc2 [B] bbb1 IniConfig2 ic new IniConfig2(); //首次写入 if (!ic.CanRead()) { ic.AddSectionReMarke("A", "节点备注"); ic.SetValue("A&qu…

OpenHarmony 5.0中状态栏添加以太网状态栏图标以及功能实现

目录 1.前置条件 2.方案 1.前置条件 首先以太网接口是有问题的,如下按照如下流程将以太网接口进行修复 OpenHarmony 以太网卡热插拔事件接口无效-CSDN博客 然后上述的接口可以了就可以通过这个接口获取以太网是否连接状态 要注意wifi连接的干扰和预置虚拟网口干扰 2.方案…

RNN GRU LSTM 模型理解

一、RNN 1. 在RNN中&#xff0c; 2. RNN是一个序列模型&#xff0c;与非序列模型不同&#xff0c;序列中的元素互相影响&#xff1a; 是由 计算得来的。 在前向传播中&#xff1a; 用于计算 和 用于计算 和 因此&#xff0c;当进行反向链式法则求导时候&#xf…