首页 > 编程语言 >在 Java 中,什么时候用重载,什么时候用重写

在 Java 中,什么时候用重载,什么时候用重写

时间:2024-11-13 10:08:35浏览次数:1  
标签:场景 Java 方法 子类 重载 父类 重写

 

 

重载
  1. 概念: 重载是在同一个类中,有多个同名的方法,但参数类型、数量或顺序不同。
  2. 目的: 提供多种方式调用同一名称的方法,以适应不同的场景。
  3. 应用: 当需要以统一的方式来处理不同类型的数据时,可以用重载。
重写
  1. 概念: 重写发生在继承关系中,子类重新定义父类的方法。
  2. 目的: 子类可以根据自己的需求,改变或扩展父类的行为。
  3. 应用: 当子类需要增加新的功能,或者改变父类方法的行为时,可以使用重写。
简单总结:
  1. 重载: 提供多种方法签名。目的是提高程序的多样性和健壮性,以适配不同场景使用时,使用重载进行扩展;
  2. 重写: 增强剂,在不修改原方法的基础上增强或改变行为。
生活例子:
  • 想吃一碗面,给你提供了拉面、炒面、刀削面等选项,这是重载。
  • 不仅端来了面条,还加了青菜、鸡蛋等配料,这是重写。
设计模式:
  • Cglib实现动态代理的核心原理就是方法的重写。
详细解答:
  • 重载的应用场景: 构造器的重载是最常见的应用场景之一,比如Spring框架中的​​ClassPathXmlApplicationContext​​类,其构造函数使用重载提供了多种初始化方式。
  • 重写的应用场景: 子类可以通过重写父类的方法来扩展或修改父类的功能,比如Cglib动态代理中,代理类会重写目标类的方法。
总结:
  • 重载必须修改方法的形参列表,返回值类型不能修改,访问权限也不能更严格。
  • 重写只能用于子类对父类方法的扩展或修改,不能抛出比父类方法声明的异常更多的异常。
里氏替换原则:
  • 子类应尽可能不要重写和重载父类的方法,除非必要。

标签:场景,Java,方法,子类,重载,父类,重写
From: https://www.cnblogs.com/89564f/p/18543276

相关文章

  • 基于Java的高校实习信息发布系统
    高校实习信息发布系统一:基本介绍开发环境功能模块图系统功能部分数据库表设计二:部分系统页面展示登录页面网站首页查看企业信息查看实习职位信息查看个人简历信息用户交流论坛管理职位实习列表页面公告信息管理页面企业管理页面源码一:基本介绍开发环境·开发语......
  • 探索jQuery与原生JavaScript:事件绑定的比较
    探索jQuery与原生JavaScript:事件绑定的比较在现代网页开发中,事件处理是实现用户交互的关键部分。开发者可以选择使用原生JavaScript或jQuery来绑定事件。本文将通过一个简单的示例,比较这两种方法在事件绑定上的不同,并探讨它们的优缺点。事件绑定基础事件绑定是将事件监听......
  • flask基于JavaWeb的网上订餐系统设计与实现(毕设源码+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于网上订餐系统的研究,现有研究主要集中在系统的基本功能实现以及用户体验优化方面,如界面设计、订单流程简化等。专门针对订餐系统中......
  • 工作学习笔记(七)Java的接口
    今天复习一下Java的基础知识,之前对于接口只有一个比较笼统的概念,经过一晚上的梳理,整理如下:它一种抽象类型,用于定义一组方法和常量。是Java多态性的重要体现。定义接口使用 interface 关键字来定义,例如 publicinterfaceMyInterface{} 。接口中的成员变量默认是 public......
  • 【java编程】深入揭秘 Java 中 Person person = new Person(); 背后的奥秘
    当你在Java中写下Personperson=newPerson();时,这行代码看似简单,却蕴藏着深奥的计算机科学原理,甚至能揭示Java内存管理的神秘面纱。每当你创建一个对象,你实际上是在与Java的内核进行一场交互。今天,我们就来一起揭开这行代码的面纱,探索Java的对象创建机制,理解它是如何......
  • 关于Java API的正则表达和try-catch的使用方法
    文章目录Java包装类的概述对应包装类包装类的转换方法(parse)Integer.parseInt(Strings)Long.parseLong(Strings)Byte.parseByte(Strings)Short.parseShort(Strings)Float.parseFloat(Strings)Double.parseDouble(Strings)正则表达式常用方法字符规则`.`匹配除换......
  • leetcode 59. 螺旋矩阵 II java解法
    以123456789为例n=奇数结果1                2                3      i8                9                47                6             ......
  • Java异常处理
    在Java中,异常是指在程序运行过程中出现的错误条件。当发生异常时,程序会终止执行并抛出一个异常对象。为了有效地处理异常,Java提供了异常处理机制。Java的异常处理机制主要涉及以下几个关键字和语句:try-catch:使用try块来包裹可能抛出异常的代码,然后使用catch块来捕获并处理异......
  • 每日OJ题_牛客_kotori和迷宫_BFS_C++_Java
    目录牛客_kotori和迷宫_BFS题目解析C++代码Java代码牛客_kotori和迷宫_BFSkotori和迷宫描述:        kotori在一个n*m迷宫里,迷宫的最外层被岩浆淹没,无法涉足,迷宫内有k个出口。kotori只能上下左右四个方向移动。她想知道有多少出口是她能到达的,最近的出口离她......
  • 基于Java+SpringBoot+Mysql在线课程学习教育系统功能设计与实现五
    一、前言介绍:免费获取:猿来入此1.1项目摘要随着信息技术的飞速发展和互联网的普及,教育领域正经历着深刻的变革。传统的面对面教学模式逐渐受到挑战,而在线课程学习教育系统作为一种新兴的教育形式,正逐渐受到广泛关注和应用。在线课程学习教育系统的出现,不仅为学生提供了更加灵......