2012-05-13 5 views

답변

8

Java에서 추상 인터페이스와 같은 것은 없습니다 (기본적으로 인터페이스는 추상이므로). Abstract 클래스가 있습니다.

추상 클래스와 인터페이스의 가장 큰 차이점은 추상 클래스는 일반 클래스와 같이 상속 (확장)되므로 두 개를 병렬로 확장 할 수 없으며 두 개 이상의 인터페이스를 동시에 구현할 수 있다는 점입니다 시각.

3

추상 키워드는 Java 인터페이스로 작업 할 때 더 이상 사용되지 않습니다. 정의에 따라 Java 인터페이스는 추상입니다. 구현은 없지만 정의만을 포함합니다.

-1

추상 클래스는 적어도 하나의 메소드가 구현되지 않은 클래스입니다. 그렇기 때문에 메소드의 헤더를 작성하기 전에 키워드 "abstract"을 사용해야합니다.

반대로 인터페이스는 모든 메소드가 추상 클래스 인 클래스이므로 abstract 키워드를 사용할 필요가 없습니다.

+0

이상한. 항아리를 디 컴파일하고 공개 추상 인터페이스 인 Blah를 발견했습니다. 그러므로 질문. 그것은 여전히 ​​이상하게 컴파일됩니다. – Brad

+1

@Brad 그건 정말 디 컴파일러 버그입니다. 모든 인터페이스는 항상 추상적입니다. (추측에, "추상적 인"비트가 클래스 설명자에 설정되어 있으므로 디 컴파일러는 디 컴파일 된 출력에서 ​​해당 단어를 발행합니다. 인터페이스가 되어도 그렇게 할 필요는 없지만 javac을 몰랐습니다. 그것을 받아 들일 것입니다, 그것은 "거의 무해한"여기에 맞춰보세요.) –

2

인터페이스는 이미 추상 상태입니다. OOP와 관련된 핵심 용어 "추상적"을 기억한다는 것은 자신의 인스턴스를 만들 수 없다는 것을 의미하며, 자신의 객체를 파생시킬 수있는 기본 클래스로만 사용할 수 있습니다.

인터페이스는 코드 자체를 정의하지 않는다는 점에서 추상적이지만 인터페이스에서 메소드의 기능을 제공하는 클래스에 의해 구현되어야합니다.

인터페이스 전면에 "추상"이라는 단어를 추가하면 아무런 변화가 없습니다. 자바 문서에서조차도 작가들은 인터페이스에 대한 문구에 "추상적"을 포함 시켜서 오류를 만들었다.

그러나 모든 인터페이스가 추상적이며 차이가 없다는 것을 알아야합니다.

Check this link

관련 문제