2010-01-30 4 views
2
  1. Java의 클래스는 하나 이상의 클래스를 확장 할 수 없습니다.Java 상속 의심

  2. Java의 모든 클래스는 java.lang.Object를 확장합니다.

  3. 1 및 2에서 : Java의 모든 클래스는 java.lang.Object 이외의 다른 클래스를 확장 할 수 없습니다.

이 공제에서 잘못된 것은 무엇입니까?

+1

숫자 2로 봐야합니다. Java의 모든 클래스는 java.lang.Object에 대한 * 서브 클래스 *입니다. –

+0

그리고 주석은 나를 때려칩니다. – aperkins

답변

4

Tangens는 말에 확장하려면 :

을 2 번 들어, 대신 읽어야

명시 적으로 이 확장하는 클래스가 객체

를 확장 선언하지 않는 모든 클래스

즉 extends 키워드를 사용하면 Object가 아닌 다른 것을 명시 적으로 확장한다고 말합니다. 그러나 어느 시점에서 확장 계층을 따를 경우 해당 확장 경로는 Object에서 끝납니다.

이 나머지 부분은 상속이 실제로 체인이라는 것입니다. 부모와 부모 및 부모의 부모 등 모든 속성을가집니다.이 계층의 맨 위가 항상 Object이므로 사용자는 하나 수준 또는 다른, 개체를 확장하십시오.

+0

명확한 설명 주셔서 감사합니다 :) – gameover

7

한 번에 하나의 클래스 만 확장 할 수 있습니다. 그러나 A은 을 확장 할 수 있으며 B을 확장 할 수 있습니다.

+0

저를 때려 눕히세요. 인터페이스를 사용하여 다중 상속이라는 많은 목표를 달성 할 수도 있습니다. –

+0

내가 단 하나의 수업 만 있다고 가정 해 보겠습니다. 이미 Object를 확장하고 있습니다. 그렇다면 다른 수업을 연장해서는 안됩니다. – gameover

+0

'Class A extends Object'에 의해 명시 적으로 Object로 확장되면 다른 것으로 확장 될 수 없지만 Java에서는 모든 것이'Object'의 하위 클래스입니다. –

2

올바른 문 :

  1. 자바 클래스는 직접 하나 개 이상의 클래스를 확장 할 수 없습니다.

  2. Java의 모든 클래스는 java.lang.Object를 직접 또는 간접적으로 확장합니다.

1

상속은 나무입니다. 클래스는 하나의 클래스를 직접적으로 만 확장 할 수 있지만 그 클래스는 다른 클래스를 확장 할 수 있습니다. 따라서 A extends Object, B extends A, C extends B 등을 말할 수 있습니다. C는 Object에서 간접적으로 상속받습니다.