当前位置: 首页 > article >正文

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.lryc.cn/news/2385982.html

相关文章:

  • 解决WPF短暂的白色闪烁(白色闪屏)
  • 如何在Java中处理PDF文档(教程)
  • TensorBoard安装与基本操作指南(PyTorch)
  • 基于PyTorch的残差网络图像分类实现指南
  • 2025/5/25 学习日记 linux进阶命令学习
  • 【MPC控制 - 从ACC到自动驾驶】4 MPC的“实战演练”:ACC Simulink仿真与结果深度解读
  • 【时时三省】Python 语言----牛客网刷题笔记
  • OPENEULER搭建私有云存储服务器
  • PyQt学习系列10-性能优化与调试技巧
  • 卷积神经网络(CNN)深度讲解
  • Docker部署Zookeeper集群
  • 数据结构—(概述)
  • python打卡day34
  • 华为OD机试真题—— 流水线(2025B卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • 【数据架构01】数据技术架构篇
  • 【安全攻防与漏洞​】​​HTTPS中的常见攻击与防御​​
  • esp32cmini SK6812 2个方式
  • 【数据集】30 m地表温度LST数据集
  • 【CATIA的二次开发07】草图编辑器对象结构及应用
  • IT | 词汇科普手册Ⅱ
  • 【 java 基础问题 第一篇 】
  • 以前端的角度理解 Kubernetes(K8s)
  • 自用git记录
  • pyhton基础【2】基本语法
  • python数据结构-列表详解
  • 本地环境下 前端突然端口占用问题 针对vscode
  • flutter 项目调试、flutter run --debug调试模式 devtools界面说明
  • 在局域网(LAN)中查看设备的 IP 地址
  • Axure 基本用法学习笔记
  • 使用 Hyperlane 实现 WebSocket广播