首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们真的需要类来实现Java的多态性吗?

我们真的需要类来实现Java的多态性吗?
EN

Stack Overflow用户
提问于 2014-09-27 05:45:40
回答 1查看 110关注 0票数 1

在浏览这个网站的答案时,我碰到了一条线,上面写着

实际上,您根本不需要使用类来实现多态性

这一评论被否决了。我很清楚

重写方法是Java实现多态性的“一个接口、多个方法”方面的另一种方式。方法重载支持多态性,因为它是Java实现一个接口、多个方法范例的一种方式。

我不认为除了通过类之外,我们还可以在Java中实现多态性。如果不是这样的话,有人能用一个很好的例子来详细说明吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-27 05:50:52

多态仅仅是许多(多)事物以相同的形式或形状(变型)的能力。这个术语本身在this answer中有更深入的解释。

例如,在C++中,在没有类的情况下可以很容易地做到这一点:

代码语言:javascript
运行
复制
long getNum (int x)  { return x + 1; }
long getNum (long x) { return x - 1; }

这样做,您将得到完全不同的结果与这两行:

代码语言:javascript
运行
复制
long x = getNum (1);
long y = getNum (1L);

您可以使用静态方法在Java中做完全相同的事情,完全不涉及类,但这是对语言的一点浪费:

代码语言:javascript
运行
复制
public class Test {
    public static long getNum (int x)  { return x + 1; }
    public static long getNum (long x) { return x - 1; }
    public static void main(String[] args) {
        System.out.println (getNum (1));
        System.out.println (getNum (1L));
    }
}

这方面的产出是:

代码语言:javascript
运行
复制
2
0

现在您会注意到,在我发布的Java代码中实际上有一个类,但这不是进行多态的要求,更多的是Java语言将所有内容嵌入到类中的要求。如果您订阅了使多态性依赖于类的视图,这也意味着诸如变量赋值和增量i之类的东西需要类。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26071712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档