中文翻译分别是覆盖,重载和重写

Override 和 Overwrite

实际上覆盖(Override)和重写(Overwrite)是对同一概念的不同称呼。

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写

Java中,需要重写(覆盖)父类中的方法,或者实现接口中的方法,可以用@Override标注这是一个此方法重写了(覆盖)父类/接口中的方法。

Overload

重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数,具体解释见下面代码。

示例代码

/**

* @author jimyoung

*/

class A {

char i = 'a';

public void fun(int a) {

System.out.println("调用A.fun(int a)");

}

public void fun(int a, int b) {

System.out.println("调用A.fun(int a, int b)");

}

}

class B extends A {

char i = 'b';

/**

* 此方法是A.fun(int a, int b)的一个重写/覆盖(Override/Overwrite)

*/

@Override

public void fun(int a, int b) {

System.out.println("调用B.fun(int a, int b)");

}

/**

* 此方法是B.fun(int a, int b)的一个重载(Overload)

* 重载要求方法名相同,参数不同(包括参数个数,参数类型,参数顺序,任一不同即可)

* void fun(double i, int j) 和 void fun(int j, double i)也构成重载关系

* 重载对返回结果不作要求,因为无法在调用的时候通过返回结果来明确调用的是哪个函数

*/

public void fun(int a, int b, int c) {

System.out.println("调用B.fun(int a, int b, int c)");

}

public static void main(String[] args) {

A a = new B();

B b = new B();

b.fun(1);

b.fun(1, 1);

b.fun(1, 1, 1);

a.fun(1);

a.fun(1, 1);

/**

* 子类不能覆盖父类的属性

*/

System.out.println(a.i);

System.out.println(b.i);

/**

* 无法进行下方这样的调用,因为父类引用不能访问子类中独有的方法

* 如果子类对父类方法进行了重写,那么访问的是子类中的方法,参考a.fun(1, 1);的执行结果(多态的体现)

*/

//a.fun(1, 1, 1);

}

}

输出结果

调用A.fun(int a)

调用B.fun(int a, int b)

调用B.fun(int a, int b, int c)

调用A.fun(int a)

调用B.fun(int a, int b)

a

b

overwrite java_Java中的Override, Overload和Overwrite相关推荐

  1. java 中的override overload 比较

    java 中的override & overload 比较 很久没看Java,忘记override和overload的区别了.百度了一下,把一个小弟的文章抄下来,备用. 方法的重写(Overi ...

  2. overwrite java_java中,到底overwrite和override有什么区别?

    展开全部 Override,Overload,Overwrite的区别 首先: Override是方法的覆盖 overload是方法的重载 Overwrite是方法的重写 一,方法的覆盖(Overri ...

  3. overwrite java_java中的重写override或overwrite

    java中的重写override或overwrite TestOverWrite.java ? class="java">class Person { private Str ...

  4. overwrite java_java中的overwrite怎么用?最好是有代码的

    可以的,有一种叫 JAD.exe的文件,你下载后放到JDK中的bin目录中,然后在命令行和运行比如javac,java等方法一样,具体参数有: -a       - generate JVM inst ...

  5. C++中override overload overwrite

    C++中override overload overwrite 1. overload(重载)(不是多态) 重载:是指同一可访问区内被声明的几个具有不同的参数列(参数类型.参数个数.顺序不同)的同名函 ...

  6. 重写(OverWrite)和重载(Overload)的区别

    重写(OverWrite)和重载(Overload)的区别 重写(OverWrite) 重写的定义 发生时期 重载(Overload) 重载的定义 发生时期 总结 重写(OverWrite) 重写的定 ...

  7. Java中重载(overload)和重写(override)

    了解了C++中重载(overload)和重写(override)和隐藏,需要注意的是,java中也有重载和重写,有一些区别: 1.重载 java的重载是可以在父类和子类中实现的,而C++中的重载是指在 ...

  8. java中的@Override是否需要

    java中的重载注解 @Override 是否需要?今天被人问到这个问题,回答的不太好,下来看了一下源码 /*** Annotation type used to mark methods that ...

  9. C++中的override关键字

    文章目录 1 C++中的override关键字 1 C++中的override关键字 作用: 提示程序的阅读者,这个函数是重写父类的功能. 防止程序员在重写父类的函数时,把函数名写错. #includ ...

最新文章

  1. 用master-worker模型比对团队管理
  2. 多线程编程有什么用途_为什么建议你一定要学懂C++
  3. PowerDesigner pdm生成Access的方法
  4. MTK 驱动(51)---TP 驱动移植
  5. 超人气光棍节!现在时间虽然不是2011年11月11日11点11分11秒11毫秒11微秒11纳秒11皮秒11飞秒11阿秒11渺秒11......
  6. python简单计算器下载安装到手机_python计算器app下载
  7. Microsoft Visual Studio--- 未能加载文件 %CommonDir%\dte90a.olb。未能找到该文件,因此解决此问题的尝试,请重新安装此程序。
  8. 一种基于深度神经网络的临床记录ICD自动编码方法
  9. Unity 自定义standard shader
  10. 360的服务器在哪个文件夹,360rec是什么文件夹?可以删除吗?
  11. Ubuntu用C/C++在终端打印不同颜色的字体
  12. 网站增加百度收录最有效的方法!!!!!!
  13. web前端简单静态网页制作
  14. node.js使用手册_权威的Node.js手册
  15. git操作后的各种后悔情况解决
  16. 汇编语言的基础知识一
  17. 凸多边形最小面积包围矩形
  18. 计算机投影维修维护,投影机维修常见故障解决方法
  19. 2021年高处安装、维护、拆除考试内容及高处安装、维护、拆除考试试题
  20. 看流行韩剧 简单学韩语

热门文章

  1. 网球穿线、拉线方法简介
  2. 告别世俗和平庸,告别臃肿和繁琐,拿来就用不必安装,这就是内存操作系统的魅力~~
  3. 阿里的easyexcal包实现表格动态导出
  4. 软件工程 张秋余等著 第六章课后习题部分答案
  5. 实用版JavaScript-绕开走弯路
  6. python制作飞机大战代码_python实现飞机大战完整代码,可运行
  7. java 实现最优二叉树_哈夫曼树(最优二叉树) - Java实现
  8. 机器学习笔记 - 如何对两个分类变量使用卡方检验?
  9. CSS经典布局--圣杯布局和双飞翼布局
  10. 初学Java接口,(USB接口)