`
bluestar
  • 浏览: 375788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

为何不能通过返回值来区分重载方法?

    博客分类:
  • java
F# 
阅读更多

    在java中,重载是其一个非常重要的特性。使用重载,我们就好比是用相同的词表达多种不同的含义。方法重载的规则很简单,就是每个重载的方法都必须有一个独一无二的参数类型列表,什么是独一无二的参数类型,即参数个数不同、参数类型不同、参数顺序不同。那么对于以返回值来区分重载方法是否可行呢?比如下面两个方法,虽然他们有同样的名字和形式,但却很容易区分它们:

 

 void f(){}

 int f() {reurn 1;}

 

     只要编译器可以根据语境明确判断出语义,比如在int x =f()中,那么的确可以据此却分重载方法。不过,有时你并不关心方法的返回值,你想要的是方法调用的其他效果,这时你可能会调用方法而忽略其返回值。所以,如果像下面这样调用方法:
     f();
此时Java如何才能判断该调用哪一个f()呢?因此,根据方法的返回值来区分重载方法是行不通的。

分享到:
评论

相关推荐

    第03章 方法与数组 02 方法的返回值与重载

    3. 返回类型不能作为区分重载方法的依据,因为调用方法时是根据方法名和传入的参数来决定调用哪个方法的。 下面是一个方法重载的例子: ```java public void display(int num) { System.out.println("Display ...

    Java中方法重载与重写的区别

     注意:方法的返回值类型不能用来区分重载的方法。这是因为当调用一个方法时,返回值的类型是不显示的。  2、重写  方法的重写是子类对父类的方法进行改造。  方法重写必须满足下列条件。  (1)子类的...

    重载与覆写/重写的区别

    不能通过访问权限,返回类型,异常列表进行重载 * * 下面方式错误! */ private Object getSides() throws NumberFormatException, Exception { return 1; } /** * 3. 方法异常类型和数目不会对重载...

    Java方法重载

    在测试类中,可以实例化用户和信用卡对象,然后调用不同的 pay 方法来实现支付业务逻辑。 User user = new User(); Card card = new Card(2000); user.pay(3000,1500); user.pay(card, 1500); user.pay(5000, card,...

    Java中重载和重写总结

    在方法重载中,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回值类型作为重载函数的区分标准。 3. 方法重载的例子 下面是一个简单的方法重载的例子: ```java package c04...

    C#重写重载与多态

    重载与返回值类型无关,它仅根据参数列表来决定调用哪个方法。例如: ```csharp public class MyClass { public void Test(int x, int y) {} public void Test(int x, ref int y) {} public void Test(int x, ...

    JAVA基础练习题 (2).pdf

    在Java中,方法是执行特定任务的代码块,可以通过方法来组织和复用代码。 1. 方法的定义与返回值: - 题目中的`fun`方法用于计算两个整数或浮点数的乘积。例如,`int fun(int a, int b)`方法返回`a`和`b`的整数乘积...

    java中重载与重写

    - **访问修饰符**:子类重写的方法不能比父类的方法有更严格的访问权限,例如如果父类方法为`public`,那么子类重写的方法也必须是`public`。 #### 3. 示例 假设有一个基类`Animal`和一个子类`Dog`,其中`Animal`类...

    java基础课程重点笔记.rar

    1.重写和重构的区别 方法的重载和重写都是实现多态的方式,区别在于前者实现的是...重载针对同一个类的方法的名称和参数进行识别 与返回值无关 不能通过返回值来判定两个方法是否相互构成重载 在同一个类内具有相同名

    7.java学习第七章——方法+内存结构讲解+方法重载.pdf

    - 方法重载仅依赖于参数列表的不同来进行区分。 - 方法的返回值类型和访问修饰符不影响方法重载的判断。 #### 4. 应用场景 在功能相似的情况下,可以使用方法重载来简化代码结构并提高代码的复用性。 通过以上的...

    Java2实用教程试题综合.pdf

    方法只能有一个返回值,不能通过返回值类型区分重载方法,而是通过参数列表。方法体内的局部变量不能与方法体外的变量同名,除非它们在不同的作用域内。一个对象必须属于某个特定的类,构造函数的名字必须与类名相同...

    JAVA基础练习题(JAVA入门到面向对象,有答案)

    - 重载的方法不能通过返回值类型的不同来区分,而是根据参数列表的不同来区分。 5. **方法头定义** - 定义类头时,不可能使用的关键字是`private`,因为它用于修饰成员变量或方法的访问级别,而非类本身。 6. **...

    java 重载,重写以及继承,多态的区别

    重载方法的返回值可以不同或相同,但这不是区分重载方法的依据。 例如,在上面的例子中,`Shape` 类中有多个同名的 `getSides()` 方法,但它们的形参个数和类型不同,这些方法就是重载的。 重写(Override) 重写...

    LJH_决定C++语言中函数的返回值类型

    尽管C++标准不支持函数重载基于返回类型,但可以通过结合不同的参数列表和返回类型来设计API,以提供类似的功能。 总的来说,C++中的函数返回值类型是函数特性的一部分,它规定了函数计算结果的数据类型,并影响着...

    JAVA重写和重载.pdf

    调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。这也是多态性的一个表现形式。 重载的特点: * 方法名相同,但参数类型和个数不同 * 返回值类型可以相同也可以不同 * 无法以返回型别...

    java中重载与重写的区别.pdf

    Java 中重载与重写的区别 Java 中的重载(Overloading)和重写(Overriding...在 Java 中,多态性可以通过方法重载和方法重写来实现。方法重载允许同一个方法名对应多个方法体,而方法重写允许子类重写父类中的方法。

    JAVA基础练习题 (2).docx

    5. 重载的方法不能通过返回值类型的不同来区分,只能通过参数列表的个数和类型来区分。 6. 编译器在调用重载方法时,会根据传入参数的类型和数量来决定调用哪个方法。 以上是对题目中涉及的Java基础知识的详细解释...

    Java 自定义方法

    返回类型不能作为区分重载方法的依据。 例如,我们可以为上面的`addNumbers`方法添加一个重载版本,接受两个double类型的参数: ```java public double addNumbers(double num1, double num2) { return num1 + ...

    函数重载的重要性不言而明.pdf

    在C++中,函数重载并不考虑返回值类型作为区分重载函数的依据,因为编译器在解析函数调用时主要依赖于函数的参数列表。当调用一个重载函数时,编译器会通过以下几个步骤来确定调用哪个函数: 1. **确定候选函数集**...

    Java程序设计课件:6 方法.ppt

    方法名称相同,但通过不同的参数类型、数量或顺序来区分。Java会根据实际传递的参数来决定调用哪个重载方法。 总的来说,Java中的方法是编程的核心组成部分,它们允许我们将复杂的问题分解为可管理的小部分,同时...

Global site tag (gtag.js) - Google Analytics