JAVA基础(一)——重载(Overloading)与重写(Overriding)的区别
来源:互联网 发布:中国税务网络大学安装 编辑:程序博客网 时间:2024/06/08 08:10
重载(Overloading)和重写(Overriding)在Java中是两个基础的概念,下面就将详细的介绍它们的区别。
重载(Overloading)
Java是一种面向对象型语言,我们通常会在同一个类中定义多个方法,以便不同的对象去调用它,实现自己的需求。所谓重载就是在一个类中可以定义多个函数名相同 的函数,但是有不同的参数(参数的个数、参数的类型)和具体实现(implement)。下面通过一个具体的代码段来更具体的说明一下。
class Student { void info(){ System.out.println("My name is Lucy"); } void info(int a){ System.out.println("My name is Jack." +"My age is:"+a); }}
Student类中定义了两个info方法,但是它们的参数列表是不一样的。
假设调用第一个info方法,只是打印出一个固定的字符串。
假设调用第二个人info方法,不但打印出一个固定的字符串,而且将传入的参数a 也打印出来了。
我们将上面这个例子叫做方法的重载
此外,需要注意的是:只有返回值不一样的函数,并不能够完成函数的重载,在编译时会出现错误。
这又怎么理解呢,我们接着看一个简单的例子:
float min (int a,int b)int min (int a,int b)
上面我只是简单的写了两个函数头,并没有写函数体,但是这不影响我们分析问题。
当我们调用min(1,2);时,无法确定到底调用哪个,仅从函数返回值的不同是不能实现重载的。
重写(Overriding)
Java中的一大特性就是继承。
子类可以继承基类中的方法(使用super关键字访问父类中的方法),但是有时候根据实际需求会对基类中的方法做一定的重写(修改)。
重写后的方法要与原方法具有相同的方法名称、参数列表和返回类型。
继承中的重写方法的访问权限不能低于父类的权限。
同样我们也写一个简单的例子:
class Student { void info(){ System.out.println("My name is Lucy"); }}class MiddleSchoolStudent extends Student{ void info(){ System.out.println("I have a lot of homework"); }}
定义了一个中学生类,它从学生类中继承。具有同样的info函数,但是它们的具体实现不同。这就是函数的重写。
重载是发生在同一个类中的,而重写是发生在子类和父类中的。
- JAVA基础(一)——重载(Overloading)与重写(Overriding)的区别
- 重写(Overriding)与重载(Overloading)的区别
- Java中重载Overloading与重写Overriding的区别
- java中重载Overriding与重写Overloading的区别
- Java中重载(Overloading)与重写(Overriding)的区别
- Java重载overloading与重写(覆盖)overriding
- 重载overloading和重写overriding的区别
- 方法的重载(overloading)与重写(overriding)
- 方法的重载(overloading)与重写(overriding)
- java中方法的重写(overriding)与重载(overloading)的区别
- Java中的方法重写(Overriding)与方法重载(Overloading)
- Java中的方法重写(Overriding)与方法重载(Overloading)
- Java学习笔记之重写(Overriding)与重载(Overloading)
- Java方法重载(overloading)与方法重写(overriding)
- Overloading(重载)和Overriding(重写)的区别
- 重写(Overriding)和重载(Overloading)区别
- java中方法的重写Overriding和重载Overloading
- 重载(overloading)与重写(overriding)
- 突发奇想的分享一张Windows经典图片
- URAL
- 利比亚行动
- 从应用角度看Android源码
- CocoaPods更新后搜不到想要的框架
- JAVA基础(一)——重载(Overloading)与重写(Overriding)的区别
- 动态规划-斐波那契数列求算
- <8/11>集训日记
- Java 的发展历史, 现状与未来(完整总结, 20170811 更新)
- Search Insert Position leetcode java
- 架构师日记——VCL的变量和常用片段
- 我自己看的
- 多态
- ACL 访问控制列表