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

Day22方法重写

重写首先是对方法的重写,与属性无关,其是在子类中定义与父类的方法名,参数列表,放回值完全相同的非静态方法
因此,重写需要有继承关系的前提下才能调用,子类修饰符的范围可以扩大,但不可以比父类小,而抛出的异常则与此相反,其范围可以被缩小,但不能被扩大
为什么要进行重写,因为父类的功能不一定不完全适配子类,可能不需要,可能无法满足子类的要求,有利于后续的拓展,为实现多态提供了基础

package oop1.Demo5;public class Application  {public static void main(String[] args) {//这里方法的调用只和左边,即定义的数据类型有关,是因为静态方法的调用只会和左边的定义类型有关A a = new A();//a.test();//调用A的test的方法a.test1();//A的test1的方法//父类的引用指向子类B b = new A();//b.test();//调用了B的test的方法b.test1();//也是A的test1的方法,子类重写了父类的方法//可知静态方法与非静态方法有较大区别,代码上直观来看就是静态方法只与new关键词语句的语句的左边有关,与实际指向的对象类型无关//非静态方法由引用的声明类型,即new语句的右边决定}}
package oop1.Demo5;//子类
public class A extends B {public static void test() {System.out.println("A的测试");}@Override//重写public void test1() {System.out.println("A的测试1");}//修饰符的权限会影响重写,子类的权限修饰符要大于等于父类,不能更严格
}
package oop1.Demo5;//父类
public class B {public static void test() {System.out.println("B的测试");}public void test1(){System.out.println("B的测试1");}
}
http://www.jsqmd.com/news/4299/

相关文章:

  • python调试方法:验证安装路径与路径配置
  • 深入解析:list的学习
  • CentOS将软件源修改为国内源
  • 【C++进阶】C++11 的新特性 | lambda | 包装器 - 实践
  • 实用指南:用Playwright实现接口自动化测试:从基础到实战
  • orcad放置器件时器件不在预览框中心
  • 易路一站式智能招聘,开启人才管理新纪元
  • kingbase数据库SHELL端迁移工具访问及使用
  • 数据质量定胜负:Apple 如何破解双语大模型性能鸿沟
  • 从零开始:VirtualBox 虚拟机安装与 CentOS 7 部署 + 双网卡网络配置指南
  • 微信个人号api|搭建高效微信机器人系统
  • 【光照】[物理模型]中的[BRDF]是什么?
  • [fakeadmin]-(session伪造flask框架)-CTF
  • 《Linux Robust锁》
  • 实用指南:Agent智能体+DeepSeek全教程:零基础到精通,一键生成可视化报表!
  • Manim实现气泡特效
  • 完整教程:决策树(Decision Tree)
  • C# Inno Setup
  • CF2139虚拟游记
  • 新方向 - MKT
  • 融合多元定位技术,帮助应用破解精准定位难题
  • PP-OCRv5 C++ 基准测试工具:打造高性能OCR评测标杆 - 详解
  • 自定义中间件进入管道中执行队列的流程
  • 翻斗幼儿园历险记-CTF-WP
  • .net8+winform+Antdui 制作 LOL 小助手
  • 深入解析:【Git】Git 简介及基本操作
  • hutool主要内容list
  • Kurt-Blender零基础教程:第2章:建模篇——第3节:陈列/父子级/蒙皮/置换修改器与小狐狸角色建模 - 教程
  • 20250916_QQ_Powershell
  • 完整教程:HTTP安全响应头--CSP(Content-Security-Policy)