>  기사  >  Java  >  Java 인터뷰 필수 사항: 인터페이스 및 추상 클래스에 대한 FAQ

Java 인터뷰 필수 사항: 인터페이스 및 추상 클래스에 대한 FAQ

WBOY
WBOY앞으로
2024-03-04 09:07:15373검색

Java 面试必备:接口与抽象类的常见问题解答

PHP 편집기 Apple은 Java 인터뷰에 필요한 가이드인 인터페이스 및 추상 클래스에 대해 자주 묻는 질문을 편집했습니다. Java 인터뷰에서 인터페이스와 추상 클래스는 자주 묻는 중요한 주제입니다. 이 기사를 통해 인터페이스와 추상 클래스의 차이점, 사용 시나리오, 장점과 단점 등에 대해 배우게 되며 이는 인터뷰를 더 잘 준비하고 기술적 능력을 입증하는 데 도움이 될 것입니다. Java 인터뷰를 지원하기 위해 다음 주요 질문에 대해 자세히 알아보겠습니다!

  • 인터페이스:
    • 메소드 서명 세트를 정의하지만 구현 세부 사항은 정의하지 않습니다.
    • 클래스의 계약을 선언하여 인터페이스를 구현하는 클래스가 지정된 메서드를 구현하도록 합니다.
  • 추상 수업:
    • 추상 메서드(구현 세부 정보 없음)와 구체적인 메서드(구현 세부 정보 포함)를 모두 포함할 수 있습니다.
    • 클래스의 동작을 선언합니다. 서브클래스는 추상 메서드를 구현해야 하며 구체적인 메서드를 재정의할 수 있습니다.

Q2: 인터페이스와 추상 클래스의 차이점은 무엇인가요?

특징 인터페이스 추상수업
방법 선언만 가능하고 구현은 불가능합니다 선언 및 구현 가능
달성 이를 구현하는 클래스에서 구현해야 합니다 서브클래스를 통해 구현 가능
다중 상속 다중 상속 지원 다중 상속을 지원하지 않습니다
인스턴스화 인스턴스화할 수 없습니다 인스턴스화 가능(객체 생성 불가)

Q3: 인터페이스 또는 추상 클래스를 언제 사용합니까?

  • 인터페이스 사용:
    • 구현 세부 사항을 지정하지 않고 클래스의 기능 계약을 정의합니다.
    • 다형성을 달성해야 하는 경우(동일한 동작이 필요하지만 구현이 다릅니다).
  • 추상 클래스 사용:
    • 클래스의 공통 동작 및 속성 세트를 정의하여 하위 클래스를 확장할 수 있습니다.
    • 기본 구현을 제공하고 하위 클래스를 전문화해야 하는 경우.

Q4: 인터페이스의 다중 상속과 추상 클래스의 단일-다중 상속 사이에는 어떤 관계가 있나요?

  • 인터페이스 다중 상속: 클래스는 여러 인터페이스를 구현할 수 있으므로 이러한 인터페이스에 정의된 메서드 서명을 상속받을 수 있습니다.
  • 추상 클래스의 단일 상속: 클래스는 하나의 추상 클래스만 상속할 수 있지만 다형성은 여러 인터페이스를 구현하여 달성할 수 있습니다.

Q5: 인터페이스의 기본 및 정적 메서드

Java 8에는 인터페이스의 기본 및 정적 메서드가 도입되었습니다.

  • 기본 메서드: 인터페이스를 구현하는 클래스에 의해 재정의될 수 있는 구현된 인터페이스 메서드입니다.
  • 정적 메서드: 인터페이스 인스턴스를 생성하지 않고 호출할 수 있는 구현되지 않은 인터페이스 메서드입니다.

데모 코드:

으아악

출력:

으아악

Q6: 추상 클래스의 최종 및 정적 메서드

추상 클래스에는 최종 및 정적 메서드가 포함될 수 있습니다.

  • 최종 방법: 하위 클래스로 재정의할 수 없습니다.
  • 정적 메서드: 인스턴스가 아닌 클래스 자체와 연결됩니다.

Q7: 인터페이스 및 추상 클래스의 액세스 권한

인터페이스의 모든 메서드와 상수는 기본적으로 공개 및 추상입니다. 추상 클래스의 메서드에는 다양한 액세스 권한이 있을 수 있지만 추상 메서드는 기본적으로 공개 및 추상입니다.

Q8: 인터페이스 및 추상 클래스의 인스턴스화 및 호출

  • 인터페이스: 직접 인스턴스화할 수 없지만 이를 구현하는 클래스를 통해 인스턴스화할 수 있습니다.
  • 추상 클래스: 인스턴스화할 수 있지만 개체를 ​​만들 수는 없습니다. 해당 메서드는 하위 클래스의 인스턴스를 생성하여 간접적으로 액세스해야 합니다.

Q9: 인터페이스와 추상 클래스 비교

특징 인터페이스 추상수업
다형성 지원 지원
추상적 방법 선언해야 함 선언할 수 있습니다
구체적인 방법 지원되지 않음 선언할 수 있습니다
다중 상속 지원 지원되지 않음
인스턴스화 인스턴스화할 수 없습니다 인스턴스화할 수 있지만 개체를 ​​만들 수는 없습니다
디버깅 어려움(구현수업에서 한다) 비교적 쉽습니다(추상 수업에서 하세요)
유연성 및 확장성 더 유연해지고 확장성이 높아졌습니다 낮은 유연성과 약한 확장성

Q10: 인터뷰에서 자주 나오는 함정 질문

  • 인터페이스와 추상 클래스를 혼합하세요.
  • 인터페이스에 구체적인 메소드가 포함될 수 있다는 잘못된 가정입니다.
  • 인터페이스의 메서드는 기본적으로 공개적이고 추상적이라는 사실을 잊어버리세요.
  • 추상 클래스가 다중 상속을 지원할 수 있다고 생각해보세요.
  • 기본 및 정적 인터페이스 메서드의 역할을 이해할 수 없습니다.

위 내용은 Java 인터뷰 필수 사항: 인터페이스 및 추상 클래스에 대한 FAQ의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lsjlt.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제