惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
小众软件
小众软件
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
J
Java Code Geeks
WordPress大学
WordPress大学
The Cloudflare Blog

回忆中的明天

自己写一个Web 端的MiMo TTS Chat,方便实现文本转语音,API限免中 · 回忆中的明天 NVIDIA NIM 开发平台,提供超多免费大模型 · 回忆中的明天 iTranslation 简单快捷的翻译软件,支持数十种语言互译 · 回忆中的明天 国内外免费大模型平台,支持 API 调用的超多免费大模型 · 回忆中的明天 SiliconFlow 硅基流动一站式大模型云服务平台,提供超多免费大模型 · 回忆中的明天 Xiaomi MiMo 小米大模型团队开发的大语言模型,开源限免中…… · 回忆中的明天 BigModel 智谱大模型开放平台,提供超多自研免费大模型 · 回忆中的明天 OpenRouter 模型聚合平台,提供超多免费模型使用 · 回忆中的明天 iReader 英语点读学习系统,译林小学英语在线点读 · 回忆中的明天 ZenMux 企业级大模型聚合平台,提供免费试用模型 Gemini 3 Pro · 回忆中的明天 英语学习,新概念英语在线点读、全文朗读学习系统 · 回忆中的明天 iGSTT(Gemini STT) 开源免费的语音转文本(STT)的命令行工具 · 回忆中的明天 Python 项目打包,并上传到 PyPI,分享项目 · 回忆中的明天 iGTTS(Gemini TTS) 开源免费的文本转语音(TTS)的命令行工具 · 回忆中的明天 iChat(AI Chat) 智能聊天工具,支持 MiMo、DeepSeek、Gemini、Grok、OpenAI和自定义AI · 回忆中的明天 NanoPi R2S 安装 Debian 固件系统,旁路由网络代理内网转发,决解直连网络卡顿 nftables · 回忆中的明天 NanoPi R2S Armbian Linux 旁路由网络代理内网转发,决解直连网络卡顿 iptables · 回忆中的明天 sing-box rule-set · 回忆中的明天 Xcode 最全最实用的快捷键列表 · 回忆中的明天 SwiftUI 中的@State、@Bindable和@Binding · 回忆中的明天 免费的图床服务器-GitHub Pages · 回忆中的明天 A Free Native Image Uploading Tool for macOS · 回忆中的明天 免费的图床服务器-Cloudflare-R2 · 回忆中的明天 图传 (iUploader) - macOS 免费原生图床上传利器 · 回忆中的明天 本地无法加载托管到Cloudflare中的图片等资源,权限错误403 · 回忆中的明天 国内、外免费公共的DNS,支持的DoH,防止污染、篡改的问题 · 回忆中的明天 macOS 系统下载和安装 · 回忆中的明天 使用 CURL 命令调试和诊断网络问题,网站请求测速 · 回忆中的明天 WARP Beta for macOS 支持新协议 MASQUE · 回忆中的明天 2024年自用国外靠谱的 VPS 服务器推荐 · 回忆中的明天
Java 中的重写(Override)与重载(Overload) · 回忆中的明天
2020-08-20 · via 回忆中的明天

原文:https://ichochy.com/posts/java/20200820.html


Java 是一个面向对象编程的语言,我们就以面向对象的方式来解释下重写(Override)与重载(Overload)。子类存在父类名字相同的方法,而参数的个数与类型一样,返回值也一样的方法,就称为方法的重写(Override)。同类中定义了多个名字相同的方法,但他们的参数数量不同或数量相同而类型和次序不同,则称为方法的重载(Overload)。

重写(Override)

重写出现在继承中,子类重新编写父类的方法,改写父类现有的方法,方法相同而不相似。如:你继承了你爸的房子,用来装修婚房,按照自己想法去装修,完成后外表起来没有什么变化,可内部的格局已经发生了变化。

重写代码实例

/*
 * File:Example.java
 * User:iChochy
 * URL:https://ichochy.com
 * Copyright (c) 2020
 * Date:2020/08/25 22:33:25
 */
package com.ichochy.example;

public class Example {
    public static class Father{
        public void house(){
            System.out.println("father house");
        }
    }

    public static class Child extends Father{
        /**
        * 重写父类方法,方法名、参数完全相同
        */
        @Override
        public void house() {
            super.house();//调用父类 house 方法
            System.out.println("child house");
        }
    }
    public static void main(String[] args) {
        new Father().house();
        System.out.println("################");
        new Child().house();
    }
}

重载(Overload)

重载出现在同类中,重新编写一个新的方法,改进现有的方法,方法相似而不相同。如:你要修建一套房子,可以借鉴别人建房子的经验来建造自己的房子,格局相似而不相同。

重载代码实例

/*
 * File:Example.java
 * User:iChochy
 * URL:https://ichochy.com
 * Copyright (c) 2020
 * Date:2020/08/25 22:33:25
 */

package com.ichochy.example;

public class Example {

    public void house(){
        System.out.println("house");
    }
    /**
     * 重载同类方法,方法名相同,而参数不相同
     * @param name
     */
    public void house(String name) {
        this.house();
        System.out.println(name+" house");
    }

    public static void main(String[] args) {
        new Example().house();
        System.out.println("################");
        new Example().house("iChochy");
    }
}

对比

对比 重写 重载
方法名字 相同 相同
方法参数 相同 不相同
返回值 相同 可以不相同
范围 子类中 同类或子类中

总结

方法的重写是有严格的定义,子类重写父类的方法,是自我型态表达,形成 Java 中多态的特性。而方法的重载没有严格的定义,就是个不同的方法,只是名字相同而已。