java类实现接口后,重写了接口中的方法,在创建新的类对象后,会自动运行重写后的接口中的方法吗? 5

packagecom.lzw;importjava.awt.*;importjavax.swing.*;publicclassDrawIconimplementsIcon... package com.lzw;
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon {
private int width;
private int height;
public int getIconHeight() { // 实现getIconHeight()方法
return this.height; }
public int getIconWidth() { // 实现getIconWidth()方法
return this.width; }
public DrawIcon(int width, int height) { // 定义构造方法
this.width = width;
this.height = height; }
public void paintIcon(Component arg0, Graphics arg1, int x, int y) {
arg1.fillOval(x, y, width, height); // 绘制一个圆形 }
public static void main(String[] args) {
DrawIcon icon = new DrawIcon(15, 15);
JLabel j = new JLabel("测试", icon, SwingConstants.CENTER);
JFrame jf = new JFrame();
Container c = jf.getContentPane();
c.add(j);
jf.setSize(1000,1000);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
}
程序中没有运行icon.paintIcon();方法的语句,但是后面”JLabel j = new JLabel("测试", icon, SwingConstants.CENTER);“中,直接调用了icon,而且程序结果也直接绘出了圆形图标,那么这里是在实例化DrawIcon类对象icon之后,系统默认自动调用并且运行了类中重写的接口中paintIcon();方法吗?有点理解不了这块呀,我是java新手,若是知识有漏洞,希望大神们可以批评指正啊,小弟不胜感激!
展开
 我来答
jack2569
2014-11-12 · TA获得超过101个赞
知道小有建树答主
回答量:221
采纳率:40%
帮助的人:59万
展开全部
不存在自动调用 只是在 jlabel的构造方法中 用你传递的icon实例调用了你实现的那个方法
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式