Java의 Object 클래스에서 인터페이스를 상속합니까?
가 음음음음 from에서 됩니까?Object
★★★★★★★★★★★★★★★★?
no의 경우 인터페이스인스턴스상의 오브젝트클래스의 메서드를 호출하려면 어떻게 해야 합니까?
public class Test {
public static void main(String[] args) {
Employee e = null;
e.equals(null);
}
}
interface Employee {
}
가 음음음음 from에서 됩니까?
Object
★★★★★★★★★★★★★★★★?
아니, 그들은 하지 않아.또,(*) 모든 인터페이스에 의해서 암묵적으로 계승되는 공통의 「루트」인터페이스는 없습니다(클래스의 경우와 같습니다).
no의 경우 인터페이스인스턴스상의 오브젝트클래스의 메서드를 호출하려면 어떻게 해야 합니까?
의 마다 1개의 되어 있는 .Object
★★★★★★★★★★★★★★★.equals
method는 암묵적으로 인터페이스의 멤버로 선언됩니다(슈퍼 인터페이스로부터 상속받지 않은 경우).
자세한 내용은 Java Language Specification, § 9.2 Interface Members를 참조하십시오.
9.2 인터페이스 멤버
[...]
- 만약 인터페이스가 직접 superinterfaces 있는 인터페이스으며 서명 s, 반환 형식 r와 함께 각 public인스턴스 메서드 m에 해당하지 않는다면과 같은 시그니처가 있는 메서드, 같은 반환 형식 개체, 조항 t를 throw 합니다 조항 t가 throw 되는 공공 추상 멤버 메서드 시그니철 m, 반환 형식 r 말한다.,그리고.compatible throws 구는 인터페이스에 의해 명시적으로 선언됩니다.
[...]
이 게시물은 여기 기사로 고쳐졌습니다.
(*) 서브타입이라는 개념은 다음에서 상속하는 것과 동등하지 않습니다.슈퍼 인터페이스가 없는 인터페이스는 실제로는 다음 서브타입입니다.Object
(버전 4.10.2). 클래스 타입과 인터페이스 타입 간의 서브타이핑)은 에서 상속되지 않지만Object
.
Object
는 임의의 입니다[ 1 ]
는 '''가 .implements
,extends
또는 "발신처" Object
.
에는 JLS를 추가하는 .Object
[ 2]인터페이스에 대한
[1] http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.10.2
[2] http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.2
..class
파일(인터페이스를 나타내는 파일 포함)을 지정합니다.
, 「」, 「」를 합니다.java.lang.Object
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
또 다른 관점에서 보면 다음과 같습니다.
interface MyInterface {
// ...
}
public myMethod(MyInterface param) {
Object obj = (Object) param;
// ...
}
★★★★★★★★★★★★★★★★★★.(Object) param
유효합니다.이는 이 "subtype"의 합니다.이것은, 모든 인터페이스 타입이, 다음의 서브 타입인 것을 의미합니다.java.lang.Object
.
그 이유는employee e = ...
실행하는 클래스가 있다고 읽는다 employee
에 되어 있습니다.e
. 하는 모든 합니다.따라서 를 구현하면 오브젝트가 확장됩니다.따라서 이 경우e.equals(null)
에서는 '수업하다'의 하위 것을 알고 있습니다employee
JVM을 던집니다).NullPointerException
를 참조해 주세요.
type 해야 ?
는 ""를 상속하지 .Object
할 수 .Object
class 입니다. 인터페이스의 멤버는 다음과 같습니다.
Those members declared in the interface.
Those members inherited from direct superinterfaces.
If an interface has no direct superinterfaces, then the interface implicitly
클래스에서 선언된 각 퍼블릭인스턴스 메서드에 대응하는 퍼블릭 추상 멤버 메서드를 선언합니다.
이 m으로 된 경우 으로 이러한 입니다.final
Object
.
으로, 모든 에 「」가 있는 해졌습니다.abstract
멤버 메서드에 메서드public
에서 선언된 Object
.
출처 : http://ohmjavaclasses.blogspot.com/2011/11/is-intreface-inherits-object-clashow.html
는 클래스는, 「」로부터도됩니다.Object
이치노
"참조 유형은 모두 java.lang에서 상속됩니다.오브젝트. 클래스, enum, 어레이 및 인터페이스는 모두 참조 유형입니다."
인용처: http://docs.oracle.com/javase/tutorial/reflect/class/index.html 두 번째 문장은 명확합니다.
인터페이스에는 퍼블릭메서드와 추상메서드가 필요하기 때문에 인터페이스는 오브젝트클래스를 확장할 수 없습니다.
오브젝트 클래스의 모든 퍼블릭메서드에 대해 인터페이스에는 암묵적인 퍼블릭메서드와 추상메서드가 있습니다.
이것은 다음과 같은 표준 자바 언어 사양입니다.
인터페이스에 직접 슈퍼 인터페이스가 없는 경우 인터페이스는 시그니처 s, return type r과 함께 public abstract member 메서드m을 암묵적으로 선언하고 시그니처 s, return type r과 함께 각 public instance 메서드m에 대응하는 구절t를 Object에서 선언합니다.단, 단, 시그니처, return ty를 가진 메서드가 동일하지 않는 한 가지 경우compatible throws 구가 인터페이스에 의해 명시적으로 선언됩니다."
언급URL : https://stackoverflow.com/questions/6056124/do-interfaces-inherit-from-object-class-in-java
'source' 카테고리의 다른 글
Java에서의 Runnable 인터페이스와 Callable 인터페이스의 차이점 (0) | 2022.08.18 |
---|---|
Swift 프로토콜과 Java 인터페이스 비교 (0) | 2022.08.18 |
이름 지정 시 mapGetters의 Vuex 사용자 지정 이름이 참입니다. (0) | 2022.08.18 |
Larabel 컨트롤러에 BLOB 이미지 저장 (0) | 2022.08.18 |
target: 'static'은 nuxt에서 사전 정의되지 않습니다. (0) | 2022.08.18 |