gpt4 book ai didi

java - 为什么可以直接使用抽象方法fillOval()?

转载 作者:行者123 更新时间:2023-11-30 03:34:55 25 4
gpt4 key购买 nike

我读了一个这样的 GUI 程序:

import java.awt.*;

public class TestPaint{
public static void main(String[] args){
new PaintFrame().launchFrame();
}
}

class PaintFrame extends Frame{

public void launchFrame(){
setBounds(200,200,640,480);
setVisible(true);
}

public void paint(Graphics g){
Color c = g.getColor();
g.setColor(Color.red);
g.fillOval(50,50,50,50);
g.fillRect(80,80,40,40);
g.setColor(c);
}

}

这是一个可以在内存中运行的程序,以下是结果,[抱歉,我没有足够的声誉来发布图像,但它可以运行]

当我阅读APIfile时,我发现fillOval()方法在Graphics类中定义如下:

public abstract void fillOval(int x,
int y,
int width,
int height)

为什么程序中可以直接使用abstract fillOval()?另外,在这个程序中哪里可以找到fillOval()的具体实现呢?

最佳答案

为了实例化任何抽象类,必须在某个地方有一个具体的实现。正是该实现被调用。

就像接口(interface)一样,契约就是指定的全部内容。

因此,您可以安全地调用该方法(因为任何实现都必须遵守契约)。

关于java - 为什么可以直接使用抽象方法fillOval()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28247495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com