我被赋予了一个任务来制作三个抽象方法,并将它们放在一个扩展到普通类的抽象类中。一个是圆形,第二个是彩色的平行四边形,还有一个弯曲的图形实体。 所以我提出的想法是披萨制造商。有三个浇头是较小的抽象类,但我可以绕过它以使其工作。我看到很多抽象的例子,但他们并没有真正地给我我需要的东西。问题来了,我做了黑圈课,我无法从另一个班级进入。它不能实例化blackCircle而且我厌倦了穿上一个不起作用的不同课程。由于时间的原因,我在过去的几个小时里没有做任何过程,所以我想知道是否有人可以指出我正确的方向,我做错了什么。
我的主要课程
import java.awt.Color;
import java.awt.event.MouseEvent;
import acm.graphics.*;
import acm.program.GraphicsProgram;
import testingField.ToppingsMenu.toppings;
import testingField.designFactory.Shape;
public class pizzaFactory extends GraphicsProgram {
public void init(){
theDough();
theSauce();
addMouseListeners();
}
public static void main(String[] args){
toppings blackCircle = new blackCircle;
// where the problem begins//
}
public void theDough(){
dough = new GOval (100,100,200,200);
dough.setColor(Color.YELLOW);
dough.setFilled(true);
add(dough);
}
public void theSauce(){
sauce = new GOval (100,100,180,180);
sauce.setColor(Color.RED);
sauce.setFilled(true);
add(sauce);
}
public void mousePressed(MouseEvent e)
{
last = new GPoint(e.getPoint());
gobj = getElementAt(last);
}
public void mouseDragged(MouseEvent e)
{
if (gobj != null) {
gobj.move(e.getX() - last.getX(), e.getY() - last.getY());
last = new GPoint(e.getPoint());
}
}
public void mouseClicked(MouseEvent e)
{
if (gobj != null) gobj.sendToFront();
}
private GObject gobj;
private GPoint last;
private GOval dough;
private GOval sauce;
}
我的抽象类
import java.awt.Color;
import acm.graphics.*;
import acm.program.GraphicsProgram;
import testingField.ToppingsMenu.toppings;
public abstract class blackCircle extends GraphicsProgram implements
toppings {
public void init(){
blackCircle = new GOval (radius,radius,radius,radius);
blackCircle.setColor(Color.black);
blackCircle.setFilled(true);
add(blackCircle);
}
public void draw() {
System.out.println("Olives");
init();
}
private GOval blackCircle;
private int radius = 10;
}
我的界面
public class ToppingsMenu {
public interface toppings {
abstract void draw();
}
}