2012-11-19 4 views
1

Object이 "느슨한"추상 클래스의 상위 클래스인지, 즉 다른 추상 클래스를 확장하지 않는 추상 클래스인지 궁금합니다. 나는이 사실을별로 보지 못한다. 그러나 모든 것을 하나로 모을 때이 단어에 대한 "형식적인"말씨는 어떨까요?Object는 추상 클래스의 수퍼 클래스입니까?

다음의 지원과 제목에 Q에게 내가 볼때 모순 :

지원을 ("예"위 질문에). 내가) 구체적인 클래스는, II 추상적 인 하나에서 상속 할 수 있습니다.) 모든 클래스는 Object의 자손이며, iii.) 모든 클래스 (Object 제외)에는 정확히 하나의 수퍼 클래스가 있습니다. Object이 추상 클래스의 수퍼 클래스가 아니면 (iii)은 Object의 특수한 경우에 대해 반드시 위반해야합니다. "하나의 클래스가 Object이고 다른 하나가 추상 클래스 인 경우 두 개의 수퍼 클래스를 가질 수 있습니다."

모순 ("아니오"에서 Q로) : 추상 클래스는 콘크리트에 종속 될 수없고 Object은 구체적입니다. 그러나 이것 역시 "Object 클래스의 특별한 경우"로 표현 될 수 있습니다.

다른 편보다 더 편한가, 아니면 단지 "Object 클래스의 예외적 인 것"과 같은 것일뿐입니다. 미리 감사드립니다.

참고 : 나는 Why java.lang.Object is not abstract?에 대한 토론을 읽었습니다.

위의 원본 메시지에서 명백한 실수를 수정하십시오. 추상 클래스는 분명히 구체적인 것부터 상속받을 수 있습니다. 그것도 Object를 슈퍼 클래스로 만듭니다.

답변

0

당신이 혼란 스럽다고 생각하는 것은 추상 클래스가 Concrete 클래스를 상속하는 것이 합법적이라는 것입니다. 상당히 드물지만 일어날 수 있습니다. This question은 그 중 몇 가지 예를 보여줍니다.

+0

링크를 제공해 주셔서 감사합니다. 나는 구체적인 것들을 상속받은 추상 클래스를 놓쳤다. – ashley

+0

거의 모든 예제에는 다른 구체적인 클래스를 확장하는 구체적인 클래스가 있습니다. 실제로 볼 수있는 유일한 반례는 ASP.NET (Java가 아닌)의 클래스 계층 구조 예입니다. 거기에 다른 반례를 볼 수 있다면 독자가 그 페이지를 통해 빗질을 보내지 않고 여기에 답을 복사하십시오. – ruakh

3

예, Object은 모든 추상 클래스의 수퍼 유형이고 —은 고유하게 —은 인터페이스의 수퍼 유형입니다. 사실이 아니다 즉

를; 중 & hellip]

추상 클래스는, 구체적인 하나에 서브 할 수 없습니다.

0

예, 모든 "느슨한"추상 클래스는 Object을 상속합니다. 추상 클래스가 구체적인 클래스를 상속하는 것은 일반적이지 않지만 합법적입니다.

관련 문제