(1) 抽象类仍可以创建对象,如:
Toolkit tl=getToolkit();//这不是创建对象,这是返回一个对象,创建对象指的是 new (2)同上(3)g已经是一个对象了,它drawImage是它的一个方法,drawImage不是一个类。
Toolkit tl=getToolkit();//这不是创建对象,这是返回一个对象,创建对象指的是 new (2)同上(3)g已经是一个对象了,它drawImage是它的一个方法,drawImage不是一个类。
解决方案 »
- 请教如何用java 分辨图像是否变化
- 一道java面试题,大家帮我看看
- JFrame动态改变大小,上面的JPanel如何也跟着动态改变
- 请问java函数申明static public void f()和public static void f()是否一样?有何区别?
- 怎样替换一个文本文件中的部分内容?怎样在文本文件中查出一段文字的位置?
- 求助:怎样判断一个WEB服务器运行正常?(下午揭贴)
- 请假构造方法里面同时出现this(),与super()问题
- 请问那位有原断点续传的原码...(要支持上传和下载)???或者讲讲应该怎么实现...
- 想通过一例子彻底的弄懂java.io包中的类,真诚的希望高手给予帮助!
- 谁看到过jbuilder4的好书,请推荐。
- 是不是父类的方法,子类必须完全一样声明?
- 看看我對class method 和 instance method 的理解,及implicit argument&explicit argument.
Grahpics类中有个drawString方法,但这个方法是abstract方法,abstract 方法是不给出方法体的, 但是为什么可以直接调用呢,如:
Graphics g;
g.drawString("I admire you",30,80);
它的方法体是在哪里给出的啊,谢谢了
abstract void drawString(String str, int x, int y)
Draws the text given by the specified string, using this graphics context's current font and color.
----------------------------------------------------------
drawString
public abstract void drawString(AttributedCharacterIterator iterator,
int x,
int y)Draws the text given by the specified iterator, using this graphics context's current color. The iterator has to specify a font for each character. The baseline of the leftmost character is at position (x, y) in this graphics context's coordinate system. Parameters:
iterator - the iterator whose text is to be drawn
x - the x coordinate.
y - the y coordinate.
也就是说,Graphics的子类实现了Graphics的abstact方法,
至于具体是哪个子类,我也不是很清楚,
大概跟踪了一下,好像是SunGraphics2D类来实现的。
java技术文档没有把这个方法看成抽象方法?还是这个方法通过后台继成?
希望高手指点。多谢!~
请问:为什么这么说?
在下还是不理解。为什么不用Graphics的子类的类名声明,而用Graphics声明?多谢!~
如果用这个抽象类声明的话,不管你传过来的是它哪个子类的对象,都能接受。体现了它的灵活性。
抽象类 Human
class Man extends Human
我是可以这样声明的 Human m = new Man();
接口也是同样道理
楼主所说的情况都是这样,所创建的对象都是抽象类或接口的子类的实例,这样声明的好处楼上的都说了,在实际情况中这样的写法是很常见的,尤其是数据库操作中,那些Statement,ResultSet都是接口,在运行时java回自己辨识型别,也就是所谓的执行期行别辨识