2010-04-07 3 views
8

, http://www.freshvanilla.org:8080/display/www/Java+Interview+Questions자바에서 null이 null입니까? 에 따르면

에서,

모든 클래스의 슈퍼 클래스입니다

?

null 인 것으로 보입니다.

나는

new Object().getClass().getSuperClass() 

이 올로 답을 확인 것을 발견했다. null을 클래스로 간주 할 수 있습니까? I가 모든 원시 데이터 유형 자바 클래스의 객체로 표현된다 참조 [점] sun.com/j2se/1.4.2/docs/api/java/lang/Class.html

+1

나는 새로운 Object(). getClass(). getSuperClass()를 좋아한다. == null'. –

+2

그 페이지를 쓴 사람은 누구의 이야기인지 정말로 모릅니다. 나는 모든 것을 할인 할거야. 원래의 질문은 "어떤 클래스가 자신을 제외한 모든 클래스의 수퍼 클래스입니까?"라고 다시 말해야합니다. –

+0

@KevinBourrillion +1은 원래 질문을 "모든 클래스가 자신을 제외한 모든 클래스의 수퍼 클래스 인"으로 바꾸는 것이 좋습니다. – sactiw

답변

28

정말 짜증 난 인터뷰 질문입니다. 나는 그들이 찾고있는 대답이 Object이 아니라 null이 아니라고 확신한다. null은 수업이 아닙니다. getSuperClassnull을 반환하면 이것이 의미하는 것은 "수퍼 클래스가 없습니다"입니다. null은 참조가 가질 수있는 특수한 값일뿐입니다. null이 클래스 인 경우 null 유형의 객체를 인스턴스화 할 수 있습니다. null에 다른 유형의 참조를 지정하는 것도 의미가 없습니다.

+0

감사합니다. – Somerandomeguy

1

Class 클래스 것을 기억 자체는 클래스입니다. 따라서 c.getClass()으로 전화하면 Class 클래스의 인스턴스가 반환됩니다. 따라서 수퍼 클래스가 Object이므로 getSuperClass() 메서드는 아무 것도 반환 할 수 없으므로 null을 반환합니다.

5

Java에서 java.lang.Object는 다른 모든 객체의 부모 (루트)이며 선행자는 없습니다.

Null은 사용할 수있는 개체가 없음을 나타내는 개체가 아닙니다 (null 참조).

당신은 다른 기본 유형에 널 객체를 캐스팅 할 수도 JLS Chapter 4

1

참조하십시오 그리고 당신은 그것에서 상속하지 않습니다. Java의 최상위 클래스는 Object입니다.

0

개체가 모든 클래스의 수퍼 클래스이고 null이 개체 참조입니다.

6

개체 클래스가 대답이라고 생각합니다.

(javadoc)

new Object().getClass().getSuperClass() 

이 클래스는 Object 클래스, 인터페이스, 원시 형, 또는 void의 경우

는, null가 돌려 주어집니다. null이 supperclass라는 의미는 아닙니다.

null이 클래스 인 경우 null이어야한다고 생각합니다. null이 클래스가 아닙니다.

+0

+1은 "널 (null)이 클래스 인 경우 널 (null)이라고해야합니다." 여기에 '클래스'클래스가 대답이라는 것을 의미하는 것으로 믿습니다. 'Class'클래스에있는 getSuperClass() 메소드는 참조 된 객체가 나타내는 클래스의 수퍼 클래스를 반환하고 해당 객체가 나타내는 클래스가 객체 클래스, 인터페이스, 기본 유형 또는 void 인 경우이 getSuperClass () 메서드는 단순히 null을 반환합니다. – sactiw

0

불만스러운 질문입니다. 질문에 대한 대답으로 '단순한'대답 만 정확합니다. 다른 것들은 혼란 스러울뿐입니다.

관련 문제