精华内容
下载资源
问答
  • 区分重载方法

    2020-09-14 16:09:58
    区分重载方法:每个重载方法都必须有一个独一无二的参数类型列表。甚至参数顺序的不同也足以区分两个方法,不过一般情况下不这么做,因为会使代码难以维护。 基本类型的重载: 5会被当做int处理,如果有某个重载方法...
    1. 为什么要有重载:
      一个原因:方法名,不需要对每个概念都用不同的词汇
      另一个原因:构造器强制重载方法名。因为构造器的名字一定是类的名字,就只能有一个构造器名。想用多种方式创建一个对象,由于都是构造器,所以他们必须有相同的名字,即类名。而他们的参数不同,必须用到方法重载。
    2. 方法签名:方法名+参数列表
    3. 区分重载方法:每个重载方法都必须有一个独一无二的参数类型列表。甚至参数顺序的不同也足以区分两个方法,不过一般情况下不这么做,因为会使代码难以维护。
    4. 基本类型的重载:
      5会被当做int处理,如果有某个重载方法接受int,就会被调用。如果传入的数据类型(实际参数类型)小于声明的形式参数类型,实际数据类型就会被提升。char:如果找不到接受char参数的方法,char直接被提升到int。
      如果传入的实际参数大于重载方法声明的形式参数,需要类型转换,否则编译器就会报错。
    5. 以返回值区分重载方法?
      void f() {}
      int f() {return 1;}
      
      虽然这样你可以区分,比如这样int x = f()
      但如果这样呢:f()
      Java没有办法判断调用哪一个f(),别人也理解不了。所以根据方法的返回值来区分重载方法是行不通的。
    展开全文
  • 区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准呢?能否考虑用方法的返回值来区分呢?比如下面两个方法,虽然他们有同样的名字和形式参数,但却很容易区分他们: void f() {} int f() { return ...

    在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准呢?能否考虑用方法的返回值来区分呢?比如下面两个方法,虽然他们有同样的名字和形式参数,但却很容易区分他们:

    void f() {}

    int f() { return 1;}

    只要编译器可以根据语境明确判断出语义,比如在int x=f()中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时你可能会调用方法而忽略其返回值。所以,如果像下面这样调用方法:

    f();

    此时java如何才能判断该调用哪一个f()呢?别人该如何理解这种代码呢?因此,根据方法的返回值来区分重载方法时行不通的。

    展开全文
  • 中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时你可能会调用方法而忽略其返回值,所以如果像下面的调用:  fun();...
    如下两个方法:
    

        void f(){}

        int f(){ return 1;}

    只要编译器可以根据语境明确判断出语义,比如在int x = f();中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时你可能会调用方法而忽略其返回值,所以如果像下面的调用:

        fun();

    此时Java如何才能判断调用的是哪一个 f() 呢?别人如何理解这种代码呢?所以,根据方法返回值来区分重载方法是行不通的。

     

    以上参考《Java 编程思想》

    展开全文
  • 你可能会这么想:“在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准 呢?能否考虑用方法的返回值来区分呢?”比如下面两个方法,虽然它们有同样的名字和形 式参数,但你却可以很容易地区分它们:...
    你可能会这么想:“在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准
    呢?能否考虑用方法的返回值来区分呢?”比如下面两个方法,虽然它们有同样的名字和形
    式参数,但你却可以很容易地区分它们:


    void f() {} 
    int f() {}


    在类似 int x=f( )的语境中,如果编译器可根据上下文明确判断出语义,那么的确可以据此区
    分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(常被
    称为“为了副作用而调用”)。你可能会调用方法而忽略其返回值:


    f();


    此时 Java 如何才能判断该调用哪一个 f( )呢?别人该如何理解这种代码呢?因此,根据方法

    的返回值来区分重载方法是行不通的。


    展开全文
  • 5.2.1 区分重载方法

    2014-07-15 11:00:06
    返回值虽然是函数签名的一部分,但不能用于区分函数重载,因为有时候调用函数时并不需要接收和处理返回值,故不能区分不同的函数调用.
  • 为什么不能以返回值区分重载方法

    千次阅读 2011-06-11 16:35:00
    我们现在来讨论一下用返回值来区分重载方法的可行性。比如下面两个方法:void fun();int fun();long fun(); 如果编译器可以根据语境来判断执行哪一个方法的话,那么当 执行 int i = fun(); 的时候,我们很容易判
  • 在java中,重载是其一个非常重要的特性。使用重载,我们就好比是用相同的词表达多种...那么对于以返回值来区分重载方法是否可行呢?比如下面两个方法,虽然他们有同样的名字和形式,但却很容易区分它们: Java代码 v
  • 在java中,重载是其一个非常重要的特性。使用重载,我们就好比是用相同...那么对于以返回值来区分重载方法是否可行呢?比如下面两个方法,虽然他们有同样的名字和形式,但却很容易区分它们:   void f(){} ...
  • java区分重载

    2018-04-18 10:20:24
    区分重载方法: 方法名称相同,但参数的数量不同 方法名称相同,方法参数类型不一样 方法名称相同,但不能根据返回值来判断重载 public class PlainString { private String value; public PlainString...
  • 为什么不能根据返回值区分重载方法? 例: int f(){ return 1;} void f(){} 假设在你的代码中有一行这样的调用: f(); 此时你并不关心该方法的返回值,那么编译器就不能确定你调用的到底是哪个方法,所以不...
  • Java重载方法

    千次阅读 2018-09-13 13:45:12
    区分重载方法:参数类型、参数个数以及参数类型,但是不可以以返回值判断重载方法。 下面用一个例子来举例方法重载: 创建一个名为Animals的类,其具有重载的bark()方法,可以根据不同的基本数据类型进行重载,并...
  • 方法重载要满足的条件: 1.方法名相同。...下面看一段报错代码,体现了企图用返回值区分方法重载会产生的矛盾。public class TestOverload { public static void main(String[] args) { TestOverl
  • (一图区分重载与重写)下面,我们来仔细看看两者的差异。重载Overloading概念:方法重载是指在一个类中,多个方法方法名相同,但是参数列表不同。参数列表不同指的是参数个数、参数类型或者参数的顺序不同。本质...
  • Java方法重载区分

    2018-05-09 12:50:11
    下面拿出一段测试程序: class Computer { private int x; public Computer(){ this(10); } /** * 构造方法重载 * @param x */ public Computer(int x){ this.x=x; } ...
  • 重载:方法名相同,...返回值类型作为函数运行之后的一个状态,他是保持方法的调用者与被调用者进行通信的关键,并不能作为某个方法的标识,所以通过返回类型并不能区分重载方法,应该根据所要区分的方法方法...
  • Java 可以根据函数名,参数个数,参数类型判断重载方法,但是不能...中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时...
  • 函数方法重载

    2018-07-14 15:16:05
    为什么不能以返回值区分重载方法?如下两个方法:void fun(){}float fun(){ return 1;}只要编译器可以根据语境明确判断出语义,比如在int x = f();中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的...
  • 如果可以根据返回值类型来区分方法重载,那在仅仅调用方法不获取返回值的使用场景,JVM 就不知道调用的是哪个返回值的方法了。 【Java面试题与答案】整理推荐 基础与语法 集合 网络编程 并发编程 Web ...
  • 对于重载方法,不要试图通过给予不同的返回值类型(参数列表完全相同)加以区分。因为方法在调用时可以不将返回值赋值...总而言之,Java不允许仅仅利用返回值的不同来区分重载方法。 //ReturnValueTest.java//You can
  • 此前一直都知道方法重载的概念是方法名相同 + 参数列表不同,也知道不能根据返回类型区分重载,但是不知道原因。 这几天在看《JAVA编程思想》,里面提到了方法过载和返回值过载,过载就是重载的意思。 首先,重载...
  • 为什么不能根据返回类型区分重载

    万次阅读 多人点赞 2017-04-24 09:36:10
    重载(过载)和重写(覆盖)的区别重载方法能否根据返回类型进行区分。?答:方法重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名...
  • 区分方法重载和重写 方法重载: 1、同一个类中 2、方法名相同,参数列表不同(参数顺序、个数、类型) 3、方法返回值、访问修饰符任意 4、与方法的参数名无关 方法重写: 1、有继承关系的子类中 2、方法名相同,...
  • public String remove(String token , Object o); public String remove(String token , List<Object> objs); ``` ```
  • 方法重载

    千次阅读 2019-05-13 08:30:34
    (1)方法重载概念: 在同一个类中,可以存在一个以上的...方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体。 方法的返回类型、修饰符可以相同,也可不同。 (5)方法重载测试: class ceshi{ pu...
  • 请说明重载(Overload)和重写(Override)的区别。 方法重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时...重载方法能否根据返回类型进行区分? 首先重载是Java多态的
  • 重载:同名不同参,参数...返回值类型作为函数运行之后的一个状态,他是保持方法的调用者与被调用者进行通信的关键,并不能作为某个方法的标识,所以通过返回类型并不能区分重载方法,应该根据所要区分的方法的方...
  • Java 可以根据函数名,参数个数,参数类型判断...中,那么的确可以据此区分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时你可能会调用方法...
  • 读者可能会想:“在区分重载方法的时候,为什么只能以类名和方法的形参列表作为标准呢?能否考虑用方法的返回值来区分?”比如以下两个方法,虽然它们有同样的名字和形式参数,但却很容易区分它们: void f() {} ...
  • 方法重载方法重写

    2018-08-28 14:12:53
    虽然每个重载方法可以有不同的返回类型,但返回类型并不足以区分使用的是哪个方法。demo: public void show(int i){...} public int show(int i,String s){return...} 方法重写:(Override) 方法重写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,546
精华内容 33,818
关键字:

如何区分重载的方法