Java中的方法重载
一.什么是方法重载?
方法重载就是两个或多个方法的方法名相同,但是方法的形参类型,数量,顺序不同。
上面提到的三点也就是一个方法的特征标,只要有一点不相同,则该方法就不相同,就可以实现重载。
在这里的重点是:实参与形参的匹配问题:
1.由低等级转向高等级
第一个就是类型提升的问题:byte->short->int->long->float->double(在普通的计算byte short char 不会相互转化)
但是char会直接提升为int型不会转化为byte和short
2.由高级转向低级必须要在参数传入时进行强制转化
例子如下:
package com.cjm.inititalize; /**
* Java中的 函数重载
*
* @author 小明
*
*/
public class FunctionOverLoading {
/*
* 函数重载形参与实参的类型提升问题
*/
// ##############################
public void f1(char x) {
System.out.println("char");
} public void f1(int x) {
System.out.println("int");
} public void f1(byte x) {
System.out.println("byte");
} public void f1(short x) {
System.out.println("short");
} public void f1(long x) {
System.out.println("long");
} public void f1(float x) {
System.out.println("float");
} public void f1(double x) {
System.out.println("double");
} // #######################################
public void f2(byte x) {
System.out.println("byte");
} public void f2(short x) {
System.out.println("short");
} public void f2(long x) {
System.out.println("long");
} public void f2(float x) {
System.out.println("float");
} public void f2(double x) {
System.out.println("double");
} public void f2(int x) {
System.out.println("int");
} // ###################################
public void f3(short x) {
System.out.println("short");
} public void f3(long x) {
System.out.println("long");
} public void f3(float x) {
System.out.println("float");
} public void f3(double x) {
System.out.println("double");
} public void f3(int x) {
System.out.println("int");
} // ####################################
public void f4(long x) {
System.out.println("long");
} public void f4(float x) {
System.out.println("float");
} public void f4(double x) {
System.out.println("double");
} public void f4(int x) {
System.out.println("int");
} // #######################################
public void f5(long x) {
System.out.println("long");
} public void f5(float x) {
System.out.println("float");
} public void f5(double x) {
System.out.println("double");
} // #######################################
public void f6(float x) {
System.out.println("float");
} public void f6(double x) {
System.out.println("double");
} // #########################################
public void textInt() {
System.out.println("当形参为int型的5时:");
f1(5);
f2(5);
f3(5);
f4(5);
f5(5);
f6(5);
} public void textChar() {
System.out.println("当形参为字符型时:");
f1('c');
f2('c');
f3('c');
f4('c');
f5('c');
f6('c');
}
public void textByte() {
System.out.println("当形参为byte型的5时:");
byte b=5;
f1(b);
f2(b);
f3(b);
f4(b);
f5(b);
f6(b);
}
public void textLong() {
System.out.println("当形参为long型的5时:");
long b=5;
f1(b);
f2(b);
f3(b);
f4(b);
f5(b);
f6(b);
}
public static void main(String[] args) {
FunctionOverLoading f = new FunctionOverLoading();
f.textByte(); }
}
结果如下:
当形参为byte型的5时:
byte
byte
short
int
long
float
当形参为字符型时:
char
int
int
int
long
float
当形参为int型的5时:
int
int
int
int
long
float
当形参为long型的5时:
long
long
long
long
long
float
Java中的方法重载的更多相关文章
- 如何区分Java中的方法重载和重写
首先说的是重载: 方法的重载 * 在同一个类中,方法名相同,参数列表不同.与返回值类型无关. * 参数列表不同: * A:参数个数不同 * B:参数类型不同 * C:参数的顺序不同(不算重载 报错) ...
- java中的方法——重载yu重写(转)
重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. ...
- java中的方法重载与重写以及方法修饰符
1. 方法重载Overloading , 是在一个类中,有多个方法,这些方法的名字相同,但是具有不同的参数列表,和返回值 重载的时候,方法名要一样,但是参数类型和参数个数不一样,返回值类型可以相同,也 ...
- java中的方法重载(overload)
什么时候方法重载:当两个方法的功能是相似的,可以考虑使用方法重载.若两个方法根本没有关系,无必要使用方法重载. 什么时候代码会发生方法重载:三个条件:1,在同一个类中.2,方法名相同.3,参数列表相同 ...
- 062、Java中的方法重载
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- Java中的方法重载与方法重写
重载(overload) 重载是在一个类中,同名方法拥有不同的参数列表则视为重载.不同的参数列表包括:参数数量不同,参数类型不同,参数顺序不同.重载对于返回类型没有要求,所以不能通过返回类型去判断是否 ...
- java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?重写跟重载的区别?
java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况.与此相对,方法覆盖是说子类重新定义了父类的方法.方法覆盖必须有相同的方法名,参数列表和返回类型. 覆盖者可能不会限 ...
- Java中的方法和方法重载
上次我们讲了Java中的一些基本的语法;今天我们就讲一点内容,来说说Java中的方法和方法重载以及需要注意的一些地方; 方法: Java的方法类似与其他语言的函数,是一段用来完成特定功能的代码片段, ...
- Java中的方法应用
一.如何定义java中的方法 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块. 语法: 1. 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.priv ...
随机推荐
- 二、持久层框架(Hibernate)
一.Hibernate对象的状态 实体类对象在Hibernate中有3中状态:瞬时,持久,脱管. 瞬时:没有和Hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,对象就消失了 ...
- ORA-01034: ORACLE not available ORA-27101
出现ORA-01034和ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正 ...
- Qt 设置窗口居中显示和窗体大小
设置窗口居中显示 方法一:在窗口(QWidget类及派生类)的构造函数中添加如下代码: #include <QDesktopWidget> //....... QDesktopWidget ...
- elasticsearch设置外部可访问
修改/config/elasticsearch.yml文件,增加如下配置: network.host: 0.0.0.0 浏览器访问http://192.168.17.134:9200/效果: 实际操作 ...
- pickle file in matlab
Load pickle files in Matlab Posted on June 12, 2013 by xcorr http://xcorr.net/2013/06/12/load-pick ...
- 逆袭之旅DAY16.东软实训.Oracle.索引
2018-07-12 14:44:27 四.索引1.创建索引手动创建:create index 索引名 on 表名(列名,[列名,...])create table employee(pno numb ...
- UVA 11990 `Dynamic'' Inversion CDQ分治, 归并排序, 树状数组, 尺取法, 三偏序统计 难度: 2
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- 对象关系_many2many
jdbc: package demo.test.many2many; import java.util.HashSet; import java.util.Set; public class Stud ...
- centos7 新装系统网络配置
[root@localhost ~]# cat /etc/sysconfig/grub GRUB_TIMEOUT= GRUB_DISTRIBUTOR="$(sed 's, release . ...
- Vue基础以及指令
Vue 基础篇一 一.Vue框架介绍 之前大家学过HTML,CSS,JS,JQuery,Bootstrap,现在我们要学一个新的框架Vue~ Vue是一个构建数据驱动的web界面的渐进式框架. 目 ...