gpt4 book ai didi

java - 多态性的有效使用?

转载 作者:行者123 更新时间:2023-12-01 08:08:38 26 4
gpt4 key购买 nike

我有两个类执行非常相似的任务,但需要传递给它们不同的数据类型才能执行这些功能。

它们最终都写入文件并公开一个公共(public)方法:write(),使用构造函数进行简单的依赖项注入(inject)。

这就是它们的不同之处 - 一个类接受特定类型的单个对象,而另一个类接受该对象类型的数组。

这是多态性的有效案例吗?我认为可以,但技术上不应该?

如何正确处理这种情况,即 2 个或更多类执行非常相似的功能,但方式略有不同,最重要的是,需要作为依赖项传入不同的数据类型?

最佳答案

在这种情况下您需要重载方法。一种适用于单个对象,另一种适用于多个对象。他们应该在同一个类(class)。

以下是一种易于记住的何时使用什么的方法:
1. 重载是指您需要用不同的数据做同样的事情
2. 覆盖是指您需要以不同的方式使用相同的数据执行相同的操作

public class FileWriter {

public void write(File from){ // single file
// magic logic
}

public void write(File... from){ // multiple files using varargs
// magic logic
}
}

关于java - 多态性的有效使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com