关于接口的疑问..在线等待
来源: 互联网 发布时间:2015-09-12
本文导语: 我的问题是: 在下面的代码中 public class Applet1 extends Applet { public void paint(Graphics g) { g.drawOval(35,35,100,60); } ... } drawOval()是Graphics抽象类中的一个方法,其源代码定义如下 : public abstr...
我的问题是: 在下面的代码中
public class Applet1 extends Applet {
public void paint(Graphics g) {
g.drawOval(35,35,100,60);
}
...
}
drawOval()是Graphics抽象类中的一个方法,其源代码定义如下 :
public abstract void drawOval(int x, int y, int width, int height);
我的问题是drawOval()为什么会画出一个椭圆(别笑!)?因为它是一个空的方法,而没有实现;并且paint()在Component类中也是一个抽象的方法。
如果drawOval()有实现,那儿是在那儿实现的,在那个类中实现?
public class Applet1 extends Applet {
public void paint(Graphics g) {
g.drawOval(35,35,100,60);
}
...
}
drawOval()是Graphics抽象类中的一个方法,其源代码定义如下 :
public abstract void drawOval(int x, int y, int width, int height);
我的问题是drawOval()为什么会画出一个椭圆(别笑!)?因为它是一个空的方法,而没有实现;并且paint()在Component类中也是一个抽象的方法。
如果drawOval()有实现,那儿是在那儿实现的,在那个类中实现?
|
怎么画由你定义,所以叫抽象方法,而且drawOval()有实现的。
|
其实,你并不要太在意诸如此类的问题,因为这些都是集成在JDK中的,开发商已经帮你做好了具体的实现,你只要会用就可以了!你理解的没错,在你自己创建接口或抽象类时要遵守,不能真的实现!但可以在子类中具体加以实现!记住,不要太在意开发商已经做好的东西!
|
抽象方法! 在子类中实现的,至于说jvm如何找到对应的实现方法,
那就是语言特性了,是被编译器支持的,这些不用管啦
那就是语言特性了,是被编译器支持的,这些不用管啦
|
那么接口是怎么找到它的实现的?
我觉得这是一个向上造型的过程,具体是由jvm实现的
我觉得这是一个向上造型的过程,具体是由jvm实现的