2013-04-09 2 views
0

다음 프로그램을 컴파일하고 추상 메소드 오류를 계속 받으려고합니다. 컴파일하려고하는 프로그램은 다음과 같습니다 (아직 완료되지 않았습니다). 다음과 같이 내가 받고있어 오류 : 그것은 당신이 ListInterfacegetNext() 메서드를 재정의되지 않으며, 현재 두 getNext() 방법을 말한다Double은 추상 클래스가 아니며 ListInterface에서 추상 메서드 getNext()를 재정의하지 않습니까?

Double.java:5: error: Double is not abstract and does not override abstract method getNext() in ListInterface 
public class Double<T extends Comparable<T>> implements ListInterface<T>{ 
    ^
    where T is a type-variable: 
    T extends Comparable<T> declared in class Double 
1 error 

import java.io.*; 
import ch06.lists.*; 
import support.DLLNode; 

public class Double<T extends Comparable<T>> implements ListInterface<T>{ 

    protected DLLNode<T> front; 
    protected DLLNode<T> rear; 
    protected DLLNode<T> curPosition; 
    protected int numElements; 

    public Double(){ 
     front = null; 
     rear = null; 
     curPosition = null; 
     numElements = 0; 
    } 

    protected DLLNode<T> find(T target){ 

    } 

    public int size(){ 
     return numElements; 
    } 

    public boolean contains(T element) throws NullPointerException{ 
     if (DLLNode.getInfo()!=element){ 
      return false; 
     } 
     else{ 
      return true; 
     } 
    } 

    public boolean remove(T target) throws StackUnderflowException{ 
     if (!contains(target)){ 
      return false; 
     } 
     else{ 
      return true; 
      DLLNode.setLink()==null; 
     } 
    } 

    public T get(T element){ 
     return find(element); 
    } 

    public String toString(){ 

    } 

    public void reset(){ 

    } 

    @Override 
    public T getNext(){ 
     return null; 
    } 

    public void resetBack(){ 

    } 

    public T getPrevious(){ 

    } 

    public void add(T element){ 

    } 
} 
+0

오버라이드 된 모든 메소드에 @Override를 추가하십시오. 이해하는데 도움이됩니다 – BobTheBuilder

+2

ListInterface.java 코드를 사용할 수 있습니까? –

+0

@baraky 을 사용하여 "getNext"를 찾으십시오. – Vitaly

답변

0

여기에는 많은 오류가 있습니다.

일부 :

1.

protected DLLNode<T> find(T target){ 

요구에 뭔가를 반환합니다.

2.

public String toString(){ 

요구에 뭔가를 반환합니다.

3.

public T getPrevious(){ 

요구에 뭔가를 반환합니다.

4.

public T get(T element) { 
     return find(element); 
    } 

가) (즉 걸보고

protected DLLNode<T> find(T target) { 

동안은 T 및 DLLNode<T>


컴파일러 그냥 모든 것을 혼동있어 반환) (찾아 반환하고 적어도 뭔가를 해결하기 위해 당신에게 :)

0

. 나는 그것에 대해 당신에게 말하지 않는 것이 놀랍습니다. 그러나 첫 번째 것을보고있는 것으로 보아서 그것이 ListInterface.java에서 기대하는 것과 같지 않다는 것을 알 것입니다. public DLLNode<T> getNext() 메서드를 삭제하면 오류가 사라집니다.

문제의 실제 해결책은 Eclipse 또는 IntelliJ와 같은 좋은 IDE를 얻는 것입니다. 그들은 모든 문제가 귀하의 코드에있는 부분을 강조 표시하고 문제를 해결하는 방법에 대한 제안을 제공합니다. 일반적으로 IDE를 사용할 때 가장 어려운 부분은 올바르게 설정하는 것이므로 어떤 IDE를 선택하든 튜토리얼을 검색하는 것이 좋습니다.

+0

메소드의 오버로드 일 수 있으므로 삭제를 말하지 않습니다. 그래도 잘못된 과부하입니다. –

+0

나는 그 일을 알아 차리지 못했지만 한 가지 방법을 삭제하더라도 여전히 오류가 발생합니다. 나는'@ Override'를 사용했습니다. –

+0

현재 IDE로 Geany를 사용하고 있습니다. –

0

알 수 있습니다.

당신은에서}는 누락 :

public boolean remove(T target) throws StackUnderflowException{ 
     if (!contains(target)){ 
      return false; 
     } 
     else{ 
      return true; 
      DLLNode.setLink()==null; 
     } 
    } 

당신은 반환 할 수 없습니다 :

public boolean remove(T target) throws StackUnderflowException{ 
    if (DLLNode.contains()==target){ 
     return true; 
     DLLNode.setLink()==null; 
} 

난 정말 당신이 여기서 뭘하려고 이해하지 않지만 더 ...

값을 입력 한 후 다른 명령을 실행하십시오. 반환 순서 전환 & DLLNode.setLink()==null;

+0

이것은 그의 마지막 판에서 나온 것입니다. – Vitaly

+0

무엇? 코드 여전히 하나 없어} if 문 다음에 – BobTheBuilder

+0

이상하게도 그것을 놓치지 만 포함 시키려면 코드를 변경해도 같은 오류가 발생합니다. –

관련 문제