我是java新手,当我在互联网上搜索通过java获取HTTP响应代码时,我开始了解java中的[HttpURLConnection]
类。这个类是抽象类,因此我不能实例化这个类。所以我的问题是我有一个URL
对象以及如何在我的代码中使用这个抽象类。这可能是非常基本的问题,但你的答案将有助于从根本上理解java。
先谢谢
https://docs.oracle.com/javase/8/docs/api/java/net/HttpURLConnection.html
答案 0 :(得分:1)
您从HttpURLConnection
实例获得URL
个对象,该对象代表http:
(或https:
)协议网址,来自openConnection
method。你得到的是对符合URLConnection
抽象类定义的接口的对象的引用(但它将是HttpURLConnection
子类的实例)。
您通常不需要知道您正在使用的具体课程;你code to an interface定义了你应该用你拥有的东西做的事情。那些东西然后由你引用的对象的具体类完成。
具体说明:
是否可以使用Abstract类的用户方法而不使用扩展Abstract Class的类
如果它们是实例方法,则不是。线索就在名字中。 ;-)要使用实例方法,您必须拥有一个实例。要拥有一个实例,您必须具有该实例所属的具体(非抽象)类。
但是又一次:通常你不关心那个类是什么,只是你有一个符合你需要使用的接口的实例。
答案 1 :(得分:0)
您必须使用一个具体类,它是抽象类的子类来调用该方法。
或者,如果您要使用的功能是静态的,您可以直接调用它。下面是一个非常小的例子来展示它。
abstract class SimpleAbstract {
public static String testString() {
return "You got me";
}
public abstract void doMagic();}
public class AbstractExample {
public static void main(String[] args) {
System.out.println(SimpleAbstract.testString());
}}
答案 2 :(得分:0)
以下是初始化抽象类而不扩展它的示例
abstract class Abstractclass{
public void someMethod(){
System.out.println("Hello");
}
abstract public void anotherMethod();
}
public class Demo {
public static void main(String args[])
{
//creation of object .........................
Abstractclass obj = new Abstractclass(){
public void anotherMethod(){
System.out.println("Hello12222");
}
};
obj.anotherMethod();
obj.someMethod();
}
}
输出:Hello12222 Hello