2010-02-09 2 views
1

Я пытаюсь сделать игру лабиринта на Java.Java: Реализация класса drawable

Класс Explorer представляет пользователя, а DrawableExplorer - это код, графически представляющий пользователя. DrawableExplorer реализует Drawable интерфейс, который содержит:

import java.awt.Graphics; 

    public abstract interface Drawable 
    { 
     public abstract void draw(Graphics paramGraphics); 
    } 

это компилируется успешно, однако, я не могу понять, почему мой класс DrawableExplorer не является:

import java.awt.*; 
    public class DrawableExplorer extends Explorer implements Drawable 

{ 

    public DrawableExpolorer(Square location, Maze maze, String name) 
     { 
      public void draw(Graphics g) 
       { 
        Square location = location(); 
        get.setColor(Color.BLUE); 
        g.fillOval(loc.x() + 10, loc.y() + 10, 30, 30); 

       } 
     } 
} 

Он просит для типа возврата, но не мое метод void?

сообщение об ошибке компилятора говорит «недействительное объявление метода, типа возвращаемого значения требуется»

ответ

3

Вы должны объявить класс как:

public class DrawableExplorer extends Explorer implements Drawable 

т.е. Предложение extends должно прийти до того Оговорки implements ,

Другая ошибка заключается в том, что вы объявили свой метод draw внутри тела конструктора для DrawableExplorer. Учитывая, что вы определили конструктор, который принимает три аргумента, вы, как правило, хотели бы обрабатывать их внутри тела конструктора (вы в настоящее время игнорируете их); например путем присвоения им переменных экземпляра.

+0

Можете ли вы опубликовать ошибку компиляции в исходном вопросе вместе с обновленным кодом? Кроме того, я отредактировал свой ответ, чтобы выделить вторую ошибку. – Adamski

+0

В сообщении об ошибке компилятора говорится: «Недопустимое объявление метода, требуемый тип возвращаемого значения» – dukevin

+2

Неправильная написание конструктора: «DrawableExpolorer», поэтому компилятор считает, что это метод. – Adamski

Смежные вопросы