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 ...
随机推荐
- 专题[vjudge] - 数论0.1
专题[vjudge] - 数论0.1 web-address : https://cn.vjudge.net/contest/176171 A - Mathematically Hard 题意就是定义 ...
- [CodeForces - 197D] D - Infinite Maze
D - Infinite Maze We've got a rectangular n × m-cell maze. Each cell is either passable, or is a wal ...
- js正则表达式 replace替换url的参数
/* 定义替换对象键值 */var setReferArgs = function(){ var referArgs = new Object(); referArgs['#userID\ ...
- elasticsearch设置外部可访问
修改/config/elasticsearch.yml文件,增加如下配置: network.host: 0.0.0.0 浏览器访问http://192.168.17.134:9200/效果: 实际操作 ...
- angular4,angular6中解决内层盒子到底外层盒子滚动
//用来处理 里盒子滚完外盒子滚的问题 scrollUnique(who){ document.getElementsByClassName(who)[0].addEventListener('mou ...
- chrome hosts
# Go Hosts# 2017-05-02 02:13:04# Localhost (DO NOT REMOVE)127.0.0.1 localhost::1 localhost ip6 ...
- kiss word memory post poly peri out ~p 4
1● post p əust 在后面,邮件 2● peri 多 3● poly 周围,靠近
- 【Java算法】求质数的算法
计算100以内的质数 1.质数:大于1的整数中,只能被自己和1整除的数为质数. 如果这个数,对比自己小1至2之间的数字,进行求余运算,结果都不等于0,则可以判断该数为质数. public class ...
- es6新增的math函数有哪些
Math.trunc():用于去除一个数的小数部分,返回整数部分. Math.sign():用来判断一个数到底是正数.负数.还是零. Math.cbrt():用于计算一个数的立方根. Math.hyp ...
- day19 反射
今日所学 : 1. isinstance , type , issubclass 2.如何区分方法和函数(代码) 3.反射(重要) 1. isinstance ,type ,issubclass is ...