首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >实例化Java抽象类?

实例化Java抽象类?
EN

Stack Overflow用户
提问于 2015-05-01 22:02:52
回答 4查看 1.5K关注 0票数 16

相对较新的Java程序员和我被教导不能创建抽象类的实例。我也做了一些研究,我了解到在大多数情况下,当一个抽象类被创建时,它实际上是一个匿名子类。但这是我遇到的问题:

Java的URL类有一个返回URLConnection的方法openConnectionURLConnection是一个抽象类,Java文档还将它的所有子类列为抽象类。所以我真的迷路了。返回的是什么?

EN

回答 4

Stack Overflow用户

发布于 2015-05-01 22:08:39

openConnection返回一些扩展URLConnection的具体类。该方法的签名被定义为返回URLConnection,因为使用它的代码不应该依赖于任何特定的实现。

票数 14
EN

Stack Overflow用户

发布于 2015-05-01 22:08:55

多态概念将在这里应用。

对象的类型将是URLConnection(父类\接口),并且对象将属于其子类(扩展或实现(在接口的情况下))。

下面的例子可能会让你明白这一点。

代码语言:javascript
复制
abstract class URLConnection {
  // some methods. 
}

假设您有自己的类。

代码语言:javascript
复制
class ConnectionClass extends URLConnection {
  // some methods 
} 

class Main {
  URLConnection connect = null

  public URLConnection getUrl() {
    return connect = new ConnectionClass();
  }
}

你将返回类的object,它给出了URLConnection类的openConnection()的实现。同样的概念也适用于接口情况。

票数 10
EN

Stack Overflow用户

发布于 2015-05-01 22:06:59

它是一个类,扩展了返回的URLConnection。这是一种隐藏实现细节的方法,因为可以根据输入参数返回不同的URLConnection实现。

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

https://stackoverflow.com/questions/29988321

复制
相关文章

相似问题

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