【问题标题】:Confusion of Operator Overloading in java [duplicate]java中运算符重载的困惑[重复]
【发布时间】:2016-11-02 21:06:28
【问题描述】:

互联网上到处我发现java不支持运算符重载,但我不知何故感到困惑。因为如果是这样,那么“+”运算符如何能够同时添加常量和字符串? 任何解释将不胜感激

【问题讨论】:

    标签: java


    【解决方案1】:

    可以重载运算符时,就说一种语言支持运算符重载,即让它们做一些语言没有内置的事情。当语言对两种不同的事物使用相同的运算符时,则不然。

    【讨论】:

    • 谢谢@JB Nizet
    【解决方案2】:

    您可以使用这些运算符,因为它们是在语言中实现的它们的行为方式。但是java中不支持运算符重载。

    您可以创建诸如 add(Object o) 之类的方法,这与运算符所做的基本相同,只是看起来不太好。

    【讨论】:

      【解决方案3】:

      某些语言(例如 C#)允许您重载运算符。换句话说,您可以定义 == 或 ++ 等的含义。这在您希望使用 == 来测试对象的相等性而不是使用 .equals() 方法的情况下非常有用,例如实例。

      这是一个 C# 教程,向您展示如何使用 + 运算符:

      http://www.tutorialspoint.com/csharp/csharp_operator_overloading.htm

      或者这个:

      https://msdn.microsoft.com/en-us/library/aa288467(v=vs.71).aspx

      而你目前无法在 Java 中做到这一点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-16
        • 1970-01-01
        • 1970-01-01
        • 2019-08-21
        • 2023-04-02
        • 1970-01-01
        • 2020-06-21
        • 1970-01-01
        相关资源
        最近更新 更多