精华内容
下载资源
问答
  • Java 函数重载

    千次阅读 2015-10-28 16:37:36
    一、区分重载方法: 参数列表不同,具体而言,可以是: (1)参数顺序的不同 (2)参数类型不同 ...不能够通过返回值来区分...二、调用重载函数。 (1)找类型匹配的 (2)在类型不匹配的情况下,找类型大于传入


    一、区分重载方法:

    参数列表不同,具体而言,可以是:

    (1)参数顺序的不同

    (2)参数类型不同


    不能够通过返回值来区分重载,例如:

    void f(){}
    int f(){return 1;}
    //调用
    f();
    如此调用,其实是没法分清到底是哪个f的 因为我们有时候不关心到底返回值


    二、调用重载函数。

    (1)找类型匹配的

    (2)在类型不匹配的情况下,找类型大于传入的类型而且最接近的。

    package com.learn.java;
    
    public class MyOverride {
    	void f(char c){
    		System.out.println("Char " + c);
    	}
    	/*void f(int m){
    		System.out.println("Int " + m);
    	}*/
    	void f(long l){
    		System.out.println("Long " + l);
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int t = 65;
    		MyOverride over = new MyOverride();
    		over.f(t);
    	}
    }
    

    输出:Long 65


    (3)在类型不匹配的情况下,自己强制转换,

    package com.learn.java;
    
    public class MyOverride {
    	void f(char c){
    		System.out.println("Char " + c);
    	}
    	/*void f(int m){
    		System.out.println("Int " + m);
    	}*/
    	void f(long l){
    		System.out.println("Long " + l);
    	}
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int t = 65;
    		MyOverride over = new MyOverride();
    		over.f((char)t);
    	}
    }
    

    输出结果:Char A


    展开全文
  • java函数重载和函数重写

    千次阅读 2012-02-15 11:10:30
    java中,函数重载(overload)和 函数重写(override)是完全不同的两个概念,而这没有任何关系(除了名字有点像) 函数重载(overload): 1、针对同一个类中的一组函数来说的; 2、这组函数中,函数名称相同...

    java中,函数重载(overload)和 函数重写(override)是完全不同的两个概念,而这没有任何关系(除了名字有点像)

    函数重载(overload):

    1、针对同一个类中的一组函数来说的;

    2、这组函数中,函数名称相同(一般情况下建议功能相似的函数才做函数重载);

    3、形式参数不相同,包括参数的个数不同、参数的类型不同或参数个数和类型都不相同;

    4、与函数的返回值类型没有关系

    5、在调用函数时会根据参数的类型和个数自动去匹配,决定调用哪个函数。这种匹配是不精确的,会找最精确的,如果没有最精确的,会找次精确的,以此类推,而且这种匹配不需要人为去调用。

    函数重写(override):函数重写又称为函数覆盖、方法重写、方法覆盖,其主要特性如下:

    1、分别为与两个类中,这两个类有子父类关系(或接口与实现类);

    2、声明的方法完全一样(函数名称、参数列表、返回值类型都完全一样);

    3、函数的访问权限非private(子类的权限可以比父类的权限大或一样大,不能比父类的权限小);

    4、有动态(在运行时刻)绑定(binding)(又称晚绑定)特性:父类的引用引用了子类的对象(或父接口引用了实现类的对象),这个引用去调用函数时,如果该函数构成了重写,那么调用子类的函数,其他情况下只能调用父类的函数(前提是父类必须存在这个函数)。


    展开全文
  • Java函数重载问题,编写两个函数,计算圆和长方形面积,构成重载,并且在main函数调用
  • 什么是java函数重载,什么是java的函数重写,两者的区别是什么,有没有形象的比喻?
  • 1.函数名相同 2.参数个数不同或者参数类型不同...3.函数重载和返回值类型无关 //函数的重载 public static void get() { System.out.println("123"); } public static int get(int a ) { return...

    1.函数名相同

    2.参数个数不同或者参数类型不同

    3.函数重载和返回值类型无关

     

         //函数的重载
         public static void get() {
             System.out.println("123");
         }
         
         public static int get(int a ) {
             return a ;
         }

     

    转载于:https://www.cnblogs.com/luguankun/p/10431034.html

    展开全文
  • JAVA函数重载及精确度匹配

    千次阅读 2012-04-16 10:10:28
    最近看了一个JAVA解惑之重载的案例,感觉挺有意思的,虽然说出来大家可能明白,但有时,可能会“犯错”。  先考虑下面代码的输出: public class JavaPuzzles { public static void main(String[] args) { ...

        最近看了一个JAVA解惑之重载的案例,感觉挺有意思的,虽然说出来大家可能明白,但有时,可能会“犯错”。

        先考虑下面代码的输出:

    public class JavaPuzzles {
    	public static void main(String[] args) {
    		JavaPuzzles.printObj(null);
    	}
    	
    	public static void printObj(double[] array){
    		System.out.print("double array");
    	}
    	
    	public static void printObj(Object obj){
    		System.out.println("Object");
    	}
    }
    

        输出结果:double array ,我们来分析一下。 JAVA函数重载调用一般分为两个步骤:

        1、找到所有可用的方法或构造器。 从上面的示例中,我们找到两个,参数类型分别为:double[] 和 Object

        2、从1中根据参数类型选择最精确的方法或构造器进行调用。对于null我们事先并不能确定其类型,两个函数都满足条件,数组也是继承自Object所以,double[]比Object具有更高的精确度,于是输出结果就为double array。

       进一步考虑:
    public class JavaPuzzles {
    	public static void main(String[] args) {
    		JavaPuzzles.printObj(null); // 这里会出现编译错误
    	}
    	
    	public static void printObj(double[] array){
    		System.out.print("double array");
    	}
    	
    	public static void printObj(Number number){
    		System.out.print("number");
    	}
    	
    	public static void printObj(Object obj){
    		System.out.println("Object");
    	}
    }

    如果调用重载函数的话,是可以通过编译的。如果调用了会编译通不过,提示:

    The method printObj(double[]) is ambiguous for the type JavaPuzzles。

    为什么?因为编译的时候,我们不能够确定null到底是什么类型,Number和doubl[]都继承自Object,根本无法区分,于是就出现了编译错误。

    于是我们可知,在这种事先不能够明确类型的参数重载调用,只能够发生在父子或多层继承关系中,但不能发生在兄弟或者兄弟子孙间。

    例如,因为String继承自Object,而Double继承自Object-->Number,所以显示调用null的时候编译会提示错误。

    	public static void printObj(Double dbl){
    		System.out.print("double");
    	}
    	
    	public static void printObj(String string){
    		System.out.println("string");
             }
    
    而因为Double继承自Number,所以调用null的时候,会调用更高精度的函数,即输入double
    	public static void printObj(Double dbl){
    		System.out.print("double");
    	}
    	
    	public static void printObj(Number number){
    		System.out.println("number");
    	}
    解函数重载给我们带来了很多的方便,但是有的时候不注意,可能会带来不期望的结果,如果避免此类的问题,可以在调用的时候明确调用参数的精确类型,从而避免问题出现。如
    JavaPuzzles.printObj((Number)null);

    展开全文
  • java 重载函数

    2018-01-05 19:17:36
    java 重载函数 就是将一个函数名称相同,但是参数的个数和类型不同 package java1; public class test2 { public static void main(String[] args) { int sum1=add(1,2); int sum2=add(1,2,3); double sum3=...
  • JAVA函数重载

    2017-02-09 21:51:47
    JAVA中,可以在同一个类中存在多个函数函数名称相同但参数列表不同。这就是函数重载(overlording)。这是类的多太性表现之一。   二、重载的作用: 举个现实生活中的实例。假如你是个木工,我要让...
  • JAVA 函数重载

    万次阅读 2018-10-17 12:20:57
    重载(overload):在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。比如,如果没有重载,我们在写求和这个方法时,必须写一个对整数的,再写一个对小数的。这样非常麻烦且不易...
  • Java中构造函数重载和方法重载

    千次阅读 2016-03-18 12:11:57
    通过一个小例子实现Java中构造函数重载和方法重载
  • java 函数重载特点

    千次阅读 2016-09-17 09:56:27
    class FunctionDemo {  /*函数重载特点:  1、在同一个类中  2、同名函数  3、只要他的参数个数 or 者参数类型不同即可... 6、java是严谨性语言,如果函数出现的调用不确定性,会编译失败。  */  public s
  • java实现函数重载,求最大值!

    千次阅读 2016-09-19 21:51:46
    假设要在程序中实现求最大值,但是由于求最大值的个数和参数都不确定,因此要针对不同的情况设计不同的方法,这里就用到了函数重载函数重载函数名相同但是参数的类型和个数不能相同。下面的例子分别是求两个数的...
  • C/C++与Java函数重载区别!

    千次阅读 2010-05-12 17:52:00
    // 函数重载,这样的重载方式,在Java中能行,在C/C++中却不行 virtual void fn(float x) { cout , float x = " ; } }; void test(Base& b) { int i = 1; b.fn(i); float f = 2.0; b.fn(f); } ...
  • java重载函数

    2018-07-27 09:10:46
    个人问题:概念不清晰,遗忘 解析问题:函数名、参数列表、返回值 重载的特点: 1、函数名必须同名 2、参数个数、参数类型不同 3、重载与返回类型无关 ...4、重载函数在同一个类中 5、提高函数的复用性...
  • JAVA - 函数重载和重写

    千次阅读 2011-06-22 17:26:00
    JAVA - 函数重载和重写1. 函数重载(OverLoding)概念:同名函数具有不同的参数列表。作用:实现单个类内部的多态性,是静态多态。注意点: (1) 参数类型、个数、顺序至少有一个不相同。(2) 不能通过访问权限、...
  • java 构造函数 重载 递归调用

    千次阅读 2017-11-28 11:24:32
    1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量; 2)在一个构造函数中调用另外一...
  • c++与java函数重载区别与相同点

    千次阅读 2016-08-02 09:44:08
    java函数重载是(两同一不同)即同一个类中方法名相同,参数列表不相同(返回值的类型与修饰符与函数重载无关) c++的函数重载是可以使全局函数不在同一个类中方法名相同但是参数列表不相同 2.相同点 两者如果函数名...
  • 函数重载(overload): 概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。 特点:与返回值类型无关,只看参数列表。 优点:方便阅读,优化设计。 注意:不能有两个...
  • JAVA 构造函数及其重载

    千次阅读 2019-04-13 23:34:31
    以上给出了不同构造函数重载,不同构造的同一个类的实例化对象,在实例化对象时系统就会自动调用构造函数,给相应得值进行初始化赋值;不同的构造进行不同得初始化,不同的赋值 5、如果类中没有定义构造函数,...
  • Java函数重载

    千次阅读 2018-09-24 21:42:10
    函数重载条件: 函数名要一样。 函数的参数类型不同或者参数类型的顺序不同。 class A { static int add() //为什么加static后面会说,现在可以不用管。 { return 0;//返回值为0 } static int ...
  • Java基础之函数重载

    千次阅读 2020-07-05 11:54:27
    /* 需求:函数的重载。 */ class FunctionDemo4 { public static void main(String[] args) { // add(4,6,9);... 4,函数重载和返回值类型无关。 5,java是严谨性语言,如果函数出现的调用的不确定性.
  • java 重载构造函数

    千次阅读 2018-03-05 19:40:06
    Java中this调用重载构造函数 在构造器中可以调用本类的其他重载构造器,不能使用构造器名称来调用另一个构造器,而是应该使用Java特定的this(….)来调用。 this(….)方法必须出现在构造器中的第一行,用来调用其他...
  • Java对象重载排序函数,实现排序

    千次阅读 2017-03-02 21:47:23
    Java基本语法回顾在对象生成过程中,我们难免会牵扯到对象之间排序的问题,在Java语言中提供了自我排序的方式—Comparable函数,我们继承并重载对象Comparable函数,实现了对象之间的排序,并在此回顾了List的简单...
  • Java函数重载和null参数的传递

    千次阅读 2010-12-23 18:39:00
    仔细一研究,发现原来是函数重载引起的: 这个类里面有2个setData方法,而且参数都只有一个,如下: setData(DefaultEntity e); setData(Hashtable e); Java会根据传入的参数来判断调用的是那个...
  • flex remoteobject 调用java重载函数

    千次阅读 2016-03-03 16:04:07
    问题说明:在使用actionscript的remoteObject调用java重载方法时,是否可以调用?是否调用的是重载的方法?实验:1. java后台代码: public String test1(int info){ System.out.println("int:
  • 众所周知,java没有办法设置默认参数,只有通过函数重载的性质来完成对默认参数的设置。 例如: 为了是的函数能最大形式的通用,会传入正则表达式,但在大部分情况下,使用默认的参数就够了,所以就对removeSpace...
  • Kotlin系列之消除函数重载

    千次阅读 2018-03-09 22:08:55
    标签: kotlin    &... 消除函数重载 ...一、函数重载的带来问题 ...四、@JvmOverloads注解解决Java调用Kotlin重载函数问题 ... 无论是在Java或者C++中都有函数重载一说...
  • 当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有提供构造函数...Java中的构造函数重载和方法重载很类似,可以为一个类创建多个构造函数。每一个构造函数都必须有它自己唯一的参数列表...
  • Java函数重载

    千次阅读 2015-07-03 23:28:54
    函数重载 1、同一个类 2、同名函数 3、参数个数不同或者参数类型不同 4、java是严谨性语言,如果函数出现的调用的不确定性,会编译失败。 public static int add(int a,int b) //两个整数的和 { return a+b; }...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 156,191
精华内容 62,476
关键字:

java函数重载的条件

java 订阅