这个抽象类有个public abstract void connect(),抽象类中的抽象方法相当于C++中的声明的作用
也就是说connect()并没有具体实现代码,那么为什么还可以调用这个方法去连接url引用的资源,
先看几行代码:
URL url=new URL(这个是参数); //构造一个URL对象
URLConnection con=url.openConnection(); //构造URLConnection对象
con.connect(); //
(1)connect()不是抽象方法吗?方法都没有具体实现,在URLConnection中仅是一个起了一个声明的作用,调用它有什么作用?
(2)要用抽象类必须派生他的一个子类,然后才可以去实例化构造其对象。URLConnection不就是一个抽象类吗?他的子类在什么地方?子类的实例化呢?望高手解答我的疑惑
也就是说connect()并没有具体实现代码,那么为什么还可以调用这个方法去连接url引用的资源,
先看几行代码:
URL url=new URL(这个是参数); //构造一个URL对象
URLConnection con=url.openConnection(); //构造URLConnection对象
con.connect(); //
(1)connect()不是抽象方法吗?方法都没有具体实现,在URLConnection中仅是一个起了一个声明的作用,调用它有什么作用?
(2)要用抽象类必须派生他的一个子类,然后才可以去实例化构造其对象。URLConnection不就是一个抽象类吗?他的子类在什么地方?子类的实例化呢?望高手解答我的疑惑
解决方案 »
- String类的split方法问题,急,谢谢
- JTree节点编辑问题
- 有道题请教各位
- 麻烦大家帮我运行一下这个程序,问题出在哪里?
- java中关于类属性的权限问题??
- 问一下怎么用java模拟遍历,添加和删除二叉树?
- 大家来讨论一下我到底该用什么好?Swing 还是 JavaFX
- ●●●●(再线等待,200分)如何把客户端applet的数据传送给servlet,然后在存如入数据库;如何把servlet查询数据库的数据传给客户段的a
- 请问哪儿可以下载Visual Age for Java4.0 Enterprise Edition?
- java图形界面怎么画不出图形
- 一个JAVA小问题
- 急求:请教类对象数组的动态赋值问题?
2: URLConnection有很多的子类,例如sun.net.www.protocol.http.HttpURLConnection就是其中的一个。
协议的处理对象返回。
1: connect调用的是子类的方法,因为url.openConnection返回的是URLConnection的子类对象,
2: URLConnection有很多的子类,例如sun.net.www.protocol.http.HttpURLConnection就是其中的一个。
父类抽象类URLConnection的抽象方法如何去调用子类的方法,我初学java,只见过:
class A //方法
{
private int data1=1;
public void show()
{
System.out.println(data1);
}
}
class B extends A
{
private int data2=2;
public void show()
{
super.show(); //调用A 的方法
System.out.println(data2);
}
}
public class Test
{
public static void main(String []args)
{
//构造B的对象
B b=new B();
b.show();
}
}
我孤陋寡闻只见过子类调用父类的方法,还没见过父类调用子类的方法,请问如何实现,最好举个例子用代码说话!我万分感激
import java.net.URL;
import java.net.URLConnection;public class Test {
public static void main(String[] args) throws IOException {
URL url = new URL("http://www.csdn.net");
URLConnection connection = url.openConnection();
System.out.println(connection.getClass().getName());
}
}
public static void main(String[] args) {
A b = new B();
b.show();
}
}
{
public void show()
{
System.out.println("it is an animal");
}
}
class Cat extends Animal
{ public void show()
{
System.out.println("it is a cat");
}
} class Dog extends Animal
{ public void show()
{
System.out.println("it is a dog");
}
}
public class Test
{
public static void main(String []args)
{
Animal a1=new Cat();
Animal a2=new Dog();
a1.show();
a2.show();
}
} 结果:
it is a cat
it is a dog动态绑定实现多态,运行时期自动会知道该去调用谁的show方法
abstract class A
{
abstract void a();
}
class B extends A
{
public void a()
{
System.out.println("a() is in B ");
}
public A getA()
{
return this;
}
}
public class Test
{
public static void main(String [] args)
{
B b=new B();
A a=b.getA();
a.a();
}
}通过子类返回父类的引用