2012-04-05 4 views
3

나는 LinkedList을 구현하고 있습니다. 나는 MyLinkedLlist, MyLinkedList 안에 size()iterator() 밖에 호출하지 않은 클래스를 구현했습니다. . 나는 하나 개의 추상 클래스를했습니다 외에도 추상 클래스 프로토 타입에서 LinkedList에 대한 모든 내 다른 필요한 기능입니다 : 내 추상 클래스 내부 equals() 방법을 구현해야하거나 이미 나를 위해 구현 궁금자신의 LinkedList 구현

public abstract class MyAbstractSequentialList implements List 

때문에 나는 상속한다 List?

+0

"public abstract class MyAbstractSequentialList implements List"를 작성하면 일부 메소드가 표시되지만 equals()는 표시되지 않습니다. – cyo

+0

실제로 나에게 달려 있기 때문에 컴파일러에서 equals() 메서드가 필요하거나 구현되지 않는다면 어떻게 할 수 있습니까? – cyo

+0

내가 equals() 메서드를 구현하지 않았을 때 에러가 없다. 테스트 할 때 호출한다.하지만 결과가 안된 false를 반환한다. – cyo

답변

5

목록은 인터페이스입니다. 따라서 기본 구현은 없습니다. 필요한 경우 구현할 수도 있습니다. equals를 재정의하는 경우 해시 코드도 재정의해야합니다.

1

목록는 인터페이스와 등호() 모든 인터페이스의 모든 메소드가 추상해야하기 때문에목록에서 구현되지이다.

따라서 추상 클래스에 equals() 메소드를 구현해야합니다. 그렇지 않은 경우에는 추상 클래스를 확장하는 모든 하위 클래스에서이를 구현해야한다.

1

List는 인터페이스 당신이 자신의 LinkedList 그래서 당신은 당신이 다음 구현하는 당신은뿐만 아니라 그 방법을 구현해야하는 경우 인터페이스 계약이 있기 때문에 수단이 equals()을 구현 오버라이드 (override) 할 필요가 당신에 구현하려는 경우 그래서.