[Java] Object 클래스와 인터페이스 Quiz

조민서·2022년 12월 14일
2

JAVA

목록 보기
10/16

Object 클래스란?

자바의 클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속하게 된다.

따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스가 된다.
즉, Object는 자바의 최상위 부모 클래스에 해당된다.

Object는 클래스는 필드가 없고 메소드로만 구성되어 있다.

이 메소드들은 모든 클래스들이 Object 클래스를 상속하므로, 모든 클래스에서 이용할 수 있다.


Object 클래스 메소드


❗❗ Quiz

아래 인터페이스의 추상메서드는 몇 개 일까?

@FunctionalInterface
public interface Comparator<T> {

    int compare(T o1, T o2);

    boolean equals(Object obj);
    
    // 디폴트 메서드... 
    
    // 정적 메서드...
}

정답은 1개다. 왜냐고?

인터페이스는 암시적으로 Object의 기본 메서드들을 선언하기 때문에 Obejct에 포함된 메서드의 시그니처를 명시적으로 인터페이스에 선언하더라도 추상 메서드로 카운팅 하지 않는다.
그래서 Comparator는 추상 메서드가 1개인 함수형 인터페이스다.


그래서 List<T> list를 sort할 때, 함수형 인터페이스인 Comparator를 이용한다.

profile
내 두뇌는 휘발성 메모리다. 😪

0개의 댓글