相对较新的Java程序员和我被教导不能创建抽象类的实例。我也做了一些研究,我了解到在大多数情况下,当一个抽象类被创建时,它实际上是一个匿名子类。但这是我遇到的问题:
Java的URL
类有一个返回URLConnection
的方法openConnection
。URLConnection
是一个抽象类,Java文档还将它的所有子类列为抽象类。所以我真的迷路了。返回的是什么?
发布于 2015-05-01 22:08:39
openConnection
返回一些扩展URLConnection
的具体类。该方法的签名被定义为返回URLConnection
,因为使用它的代码不应该依赖于任何特定的实现。
发布于 2015-05-01 22:08:55
多态概念将在这里应用。
对象的类型将是URLConnection(父类\接口),并且对象将属于其子类(扩展或实现(在接口的情况下))。
下面的例子可能会让你明白这一点。
abstract class URLConnection {
// some methods.
}
假设您有自己的类。
class ConnectionClass extends URLConnection {
// some methods
}
class Main {
URLConnection connect = null
public URLConnection getUrl() {
return connect = new ConnectionClass();
}
}
你将返回类的object,它给出了URLConnection
类的openConnection()
的实现。同样的概念也适用于接口情况。
发布于 2015-05-01 22:06:59
它是一个类,扩展了返回的URLConnection
。这是一种隐藏实现细节的方法,因为可以根据输入参数返回不同的URLConnection
实现。
https://stackoverflow.com/questions/29988321
复制相似问题