了解drawLine的工作原理

时间:2014-10-07 12:05:20

标签: java methods graphics abstract

给出以下代码:

import javax.swing.*;
import java.awt.*;

public class NewClass extends JPanel {
    public void paintComponent(Graphics g) {
        g.drawLine(0, 0, 90, 90);
    }

    public static void main(String[] args) {
        JFrame jf = new JFrame();
        jf.add(new NewClass());
        jf.setSize(500, 500);
        jf.setVisible(true);
    }
}

如果方法drawLine是抽象的,为什么它会画一条线?正如我设法理解的那样,抽象方法没有定义?

提前谢谢!

2 个答案:

答案 0 :(得分:3)

paintComponent()获取Graphics的非抽象子类,它实现drawLine()。它必须得到一个非抽象的子类,因为抽象类不能被实例化。

答案 1 :(得分:2)

public void paintComponent(Graphics g) 

此处Graphics具有抽象方法drawLine,该方法没有实现主体,但其子类具有drawLine的具体实现。调用paintComponent时,将传递适当的非抽象子类的对象