一、什么是重载(overlording)

在JAVA中,可以在同一个类中存在多个函数,函数名称相同但参数列表不同。这就是函数的重载(overlording)。这是类的多太性表现之一。

二、重载的作用:

举个现实生活中的实例。假如你是个木工,我要让你制作桌子(返回值)。然后,我给了你紫檀木,你就可以制作一张紫檀桌子;我给了你黄花梨,你可以做黄花梨的桌子。这些不同材质的木料,就是参数。返回的都是桌子,但是具体使用哪个函数,就根据传入的木料不同来决定的。

所以,可以根据所传递进来的不同参数,决定具体调用哪个函数。提高了函数使用的灵活性。

三、重载的特征:

函数名和返回值类型完全一致。

参数的数量不同、或数量相同而类型和次序不同,以方便JVM区分到底调用哪个函数。

四、重写Overriding

“重载”不同于“重写”

“重写(覆盖)”概念存在于继承关系中,子类可继承父类中的方法而不需要单独编辑,这提供便捷化。但有的时侯,子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。

父类中存在一个函数,子类中也存在一个同名函数,在了类中对函数重新编辑,做得更具体化。

重写的规则:

1、在子类中可以根据需要对从父类中继承来的方法进行重写。

2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。

3、重写方法不能使用比被重写的方法更严格的访问权限。

五、实例:

创建MyClass类,其中包含两个类,方法名一样,参数不一样

package study;

//MyClass类中,有两个print方法,但是参数不一样,实现了重载
public class MyClass {
public void print(String name){
System.out.println("姓名:"+name);
}
public void print(String name,int age){
System.out.println("姓名:"+name+"\t年龄:"+age);
}
}

实例化MyClass类:

import study.*;

public class MyTest {
public static void main(String[] args)
{
MyClass c=new MyClass();
c.print("张三");
c.print("李四",20);
}
}

输出结果:

姓名:张三
姓名:李四  年龄:20

如果函数名和参数类型一致,但函数返回值类型不一样,这不叫重载,这是一种错误写法。

因为函数名和参数类型一致时,JAVA编辑器不知道要返回哪个结果,所以这种情况是不允许的,如以下代码为错误代码

package study;

public class MyClass {
public void print(String name){
System.out.println("姓名:"+name);
}
public int print(String x){
System.out.println("姓名:"+name+"\t年龄:"+age);
return 1;
}
}

方法重复,错误。

JAVA函数的重载的更多相关文章

  1. JAVA函数的重载和重写

    一.什么是重载(overlording) 在JAVA中,可以在同一个类中存在多个函数,函数名称相同但参数列表不同.这就是函数的重载(overlording).这是类的多太性表现之一. 二.重载的作用: ...

  2. 黑马程序员——JAVA基础之函数,重载,内存结构

      ------- android培训.java培训.期待与您交流! ---------- 函数: 什么是函数? • 函数就是定义在类中的具有特定功能的一段独立小程序. • 函数也称为方法. 函数的格 ...

  3. Java中函数的重载

    函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...

  4. JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结

    JAVA之旅(二)--if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA的思想真的很重要,所以要专心的学-- ...

  5. Java中函数的重载和重写

    重载 重载指的是两个或者两个以上同名函数,但它们的参数不一样,这时会出现函数重载的情况.比如下面这段代码 class Test{ public void a(){ System.out.println ...

  6. java函数的笔记

    java中,函数即方法.也就是实现某个功能的办法. 函数的格式 修饰符 返回值类型 函数名(参数类型 参数) { 逻辑处理; return 处理结果; // return关键字是用于结束该函数的,并将 ...

  7. java函数参数默认值

    java函数参数默认值 今天,需要设定java函数参数的默认值,发现按照其它语言中的方法行不通 java中似乎只能通过函数的重载来实现 函数参数默认代码

  8. C++中的重载隐藏覆盖&&JAVA中的重载覆盖&&多态

    class 类继承默认是private, struct 默认继承是public C++中的隐藏: 只要派生类中出现和基类一样的函数名,基类中的函数就会被派生类中的函数给隐藏(如果派生类和基类中的函数名 ...

  9. JAVA中的重载和重写

    重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载(Overloading)是一个类中多态性的一种表现 ...

随机推荐

  1. strlen sizeof strcat strcpy区别

      strlen(p): 能计算出p指向字符串的长度(以当前p的位置开始),不包含终止字符'\0': p可以声明为char* p或者char p[],这两种形式strlen均能正确计算. sizeof ...

  2. IO之同步、异步、阻塞、非阻塞 (2)

    [原创链接: http://www.smithfox.com/?e=191, 转载请保留此声明, 谢谢! ] I/O Model 是一个很大的话题, 也是一个实践性很强的事情, 网上有各种说法和资料, ...

  3. (简单) POJ 1195 Mobile phones,二维树状数组。

    Description Suppose that the fourth generation mobile phone base stations in the Tampere area operat ...

  4. ZOJ 3929 Deque and Balls

    答案=所有情况中总共递减次数*2 放完i个和放完i-1个之间的递减次数是可以递推的. 有一部分是放完i-1个之后产生的,还有一部分是放完第i个之后新产生的. 注意减去多加的部分. 2的i次方可以打个表 ...

  5. Mapreduce 反向索引

    反向索引主要用于全文搜索,就是形成一个word url这样的结构 file1: MapReduce is simple file2: MapReduce is powerful is simple f ...

  6. doxygen 生成源码文档

    使用doxygen 生成源代码的文档是相当方便的,本文就简单整理下doxygen的使用说明 1. 安装 关于安装的问题不做特殊的说明,这里直接使用命令安装, 源码安装不做介绍 ubuntu: sudo ...

  7. jQuery简单实现图片预加载

    我们在做网站的时候经常会遇到这样的问题:一个页面有大量的图片导致页面加载速度缓慢,经常会出现一个白页用户体验很不好.那么如何解决这个问题呢?下面我来介绍一种在实际应用中经常会使用到的js预加载的方法. ...

  8. ios UIKit动力

    UIkit动力学是UIkit框架中模拟真实世界的一些特性. UIDynamicAnimator 主要有UIDynamicAnimator类,通过这个类中的不同行为来实现一些动态特性. 它一般有两种初始 ...

  9. 如何获得keyhash

    keyhash是由keystore产生的 三个命令解决问题 keytool -exportcert -alias androiddebugkey -keystore debug.keystore &g ...

  10. 怎样简单的制作一个CHM格式的帮助文档?

    http://jingyan.baidu.com/article/d8072ac446eb7bec95cefd0e.html 怎么制作CHM格式电子书 http://jingyan.baidu.com ...