Java面向对象-方法的重载

所谓方法的重载,

类里面有两个或者多个重名的方法,但是方法的参数个数、类型、顺序至少有一个不一样,这时候局构成方法重载;

上代码:

 package com.java1234.chap03.sec03;

 public class Demo01 {

     int add(int a,int b){
System.out.println("方法一");
return a+b;
} /**
* 方法的重载,参数个数不一样
* @param a
* @param b
* @param c
* @return
*/
int add(int a,int b,int c){
System.out.println("方法二");
return a+b+c;
} /**
* 方法的重载,参数的类型不一样
* @param a
* @param b
* @return
*/
int add(int a,String b){
System.out.println("方法三");
return a+Integer.parseInt(b);
} /**
* 参数类型个数一样,返回值类型不一样 不算重载,直接会报错,说方法重名
* @param args
*/
/*long add(int a,int b){
return a+b;
}*/ public static void main(String[] args) {
Demo01 demo=new Demo01();
System.out.println(demo.add(1, 2));
System.out.println(demo.add(1, 2,3));
System.out.println(demo.add(1, "3"));
}
}

运行结果:

方法一
3
方法二
6
方法三
4

这里有个注意点 假如参数个数和类型一样,返回值不一样,不能算重载,直接是编译出错,编译器认为是方法重复了。

具体原因:我们给下实例代码:

 package com.java1234.chap03.sec03;

 public class Demo01 {

     int add(int a,int b){
System.out.println("方法一");
return a+b;
} /**
* 参数类型个数一样,返回值类型不一样 不算重载,直接会报错,说方法重名
* @param args
*/
long add(int a,int b){
return a+b;
} public static void main(String[] args) {
Demo01 demo=new Demo01();
int m=demo.add(1, 2); // 调用返回值是int类型的方法
long n=demo.add(1, 2); // 调用返回值是long类型的方法 demo.add(1, 2); // 假如这样些 编译器晕了,你TM是调用返回值是int类型还是long类型的方法 }
}

假如调用方法 指定返回值类型,我们可以确定是调用的是某个方法,比如int m=demo.add(1,2) 因为是返回值m是int类型 那肯定

调用的是int add(int a,int b){ 方法  long n=demo.add(1, 2) 因为返回值n是long类型,那肯定调用的long add(int a,int b){方法

但是,假如直接 demo.add(1,2); 编译器就SB了,你TM是调用返回值是int类型的方法,还是返回值是long类型的方法;

Java面向对象-方法的重载的更多相关文章

  1. 面向对象方法的重载(overloading)和覆盖(overriding)

    面向对象方法的重载(overloading)和覆盖(overriding). 在有些JAVA书籍中将overriding称为重载,overloading称为过载. Overloading在一个类中可以 ...

  2. Java中方法的重载

    Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...

  3. Java面向对象-方法的值传递和引用传递

    Java面向对象-方法的值传递和引用传递 0 发布时间:『 2016-08-21 14:21』  博客类别:Java核心基础  阅读(197) 评论(0) Java面向对象-方法的值传递和引用传递 方 ...

  4. Java学习笔记十二:Java中方法的重载

    Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...

  5. java中方法的重载和覆盖

    java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...

  6. Java面向对象---方法的创建与重载

    方法的创建 方法就是可重复调用的代码段. 定义: 访问修饰符 返回值类型 方法名(参数){ 方法主体 } 返回值类型:void(无返回值):基本数据类型:应用数据类型:类对象等. 方法名的命名规则:第 ...

  7. Java 中方法的重载

    问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 show , ...

  8. 【Java】方法的重载与重写

    一.方法的重载 1.概念 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数. 调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方 ...

  9. Java面向对象-方法的定义及简单使用

    Java面向对象之方法 方法是对象的一部分,也称为行为: 先来一个简单实例: package com.java1234.chap03.sec03; public class Person { void ...

随机推荐

  1. 28-THREE.JS 扇形圆形

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  2. EL表达式 分割字符串 ,forEach定次循环

    后台取出来的是字符串  以 a,b,c,   的形式  前台要将字符串中的“,”去掉 ,并forEach重新拼接 list.labelsName不用加${} <c:set value=" ...

  3. [转载]java操作word生成水印

    应用场景 为了保护版权或辨别文件的真伪,有时需要在生成的Word文件中动态添加水印,PageOffice组件的WaterMark类就封装了给在线编辑的Word文件添加水印这一功能,调用接口非常简单. ...

  4. asp.net获取URL和IP地址

    (转自:http://www.cnblogs.com/JuneZhang/archive/2010/11/26/1888863.html) HttpContext.Current.Request.Ur ...

  5. LeetCode OJ:Remove Element(移除元素)

    Given an array and a value, remove all instances of that value in place and return the new length. T ...

  6. 面试题48:用C++设计一个不能被继承的类

    解法一:把构造函数设为私有 将构造函数定义为私有,然后通过定义公有的静态函数来创建和释放类的实例. { public: static SealedClass1* GetInstance() { ret ...

  7. SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...

  8. L132

    Major Opioid Maker to Pay for Overdose-Antidote Development A company whose prescription opioid mark ...

  9. 【dlbook】深度网络

    前向网络:无反馈 feedback 连接 [输出单元] 线性 -- 高斯分布 . sigmoid单元 -- bernoulli输出. softmax单元 -- multinoulli [隐藏单元] 整 ...

  10. iOS开发之Documentation.build/Script-BC552B3A15.sh:

    /Users/hbbhao/Library/Developer/Xcode/DerivedData/AWLive-dmbegyhgamayzudqqdentwngdpkr/Build/Intermed ...