1

我创建了一个名为RotatingGeometryUpdater的类,当我编译它时发现错误: RotatingGeometryUpdater 不是抽象的,并且不会覆盖 GeometryUpdater 中的抽象方法 updateData(Geometry) 公共类 RotatingGeometryUpdater 实现 GeometryUpdater

我该怎么办?

我的代码是。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.media.j3d.*;
import javax.vecmath.*;


public class RotatingGeometryUpdater implements GeometryUpdater
{
 long lastFrame = 0;

 public RotatingGeometryUpdater ( )
 {
 }
 // public abstract void updateData(Geometry g){}
public boolean update( Graphics graphics, RenderingEngine engine,
 GeometryArray geometry, int index, long frameNumber )
 {
  if ( lastFrame != frameNumber )
  {
    lastFrame = frameNumber;
Vector3d viewAngle = engine.getViewAngle( );
 viewAngle.x += 1;
       engine.setViewAngle( viewAngle );
  }
   return false;
 }
}
4

1 回答 1

1
what shoud I do?

您应该实现错误消息告诉您丢失的方法。当您实现一个接口时,您同意该接口指定的合同。这个概念被称为按合同设计

由于您的类是一个具体的类,它必须为updateData(Geometry)提供一个实现。

这是因为有人可能会像这样使用您的课程:

GeometryUpdater geom = new  RotatingGeometryUpdater();
geom.updateData();
^-- this line would break, as you have not implemented the method!

那么你如何实现这个呢?

public void updateData(Geometry g){
  // do stuff
}
于 2013-09-19T16:51:13.937 回答