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 ...
随机推荐
- java 类变量初始化顺序
假定有一个类定义如下: package com.zhang; public final class Girl { // static代码块1 private static String sex = & ...
- maven plugins
<build> <finalName>lessons</finalName> <plugins> <plugin> <groupId& ...
- [转]每天一个linux命令(44):top命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新 ...
- learning ddr tRP and tRP tRTP CL tRAS
referce :https://blog.csdn.net/ghostyu/article/details/7728106 tRP(RAS Precharge Time): “内存行地址控制器预充电 ...
- day35 数据库介绍和初识sql
今日内容: 1. 代码: 简易版socketsever 2.数据库(mysql)简单介绍和分类介绍 3.mysql root修改密码 4.修改字符集编码 5.初识sql语句 1.简易版socketse ...
- asp.net MVC之Result过滤器浅析
在asp.net MVC中,每一个Action方法完成之后都会返回一个结果,而我们可以在Result过滤器中根据需要修改这个结果.例如可以根据UserAgent来判断客户端的来源是手机还是PC端,从而 ...
- :代理模式:proxy
#ifndef __PROXY_H__ #define __PROXY_H__ class Subject { public: Subject(){} virtual ~Subject(){} vir ...
- Lookaside
频繁申请和回收内存,会导致在内存上产生大量的内存碎片,从而导致最终无法申请内存.DDK提供了Lookaside结构来解决这个问题.可以将Lookaside结构想象成一个内存容器.在初始的时候,它先向W ...
- div 内 图片 垂直居中
vertical-align属性适用于 line-block: <div class="title"> <img src="img_p1_title.p ...
- Centos7部署open-falcon 0.2
参考: https://www.cnblogs.com/straycats/p/7199209.html http://book.open-falcon.org/zh_0_2/quick_instal ...