찾다
JavaJava시작하기Java 추상 클래스와 인터페이스의 차이점은 무엇입니까?

Java 추상 클래스와 인터페이스의 차이점은 무엇입니까?

1. 추상 클래스

Java에서는 abstract 키워드로 수정된 클래스를 추상 클래스라고 하며, abstract로 수정된 메서드를 추상 메서드라고 합니다. 메서드 본문이 없습니다.

추상 클래스에는 다음과 같은 특징이 있습니다.

1. 추상 클래스는 인스턴스화할 수 없으며 상속만 가능합니다.

2. 추상 메서드를 포함하는 클래스는 추상 클래스여야 하지만 추상 클래스가 반드시 추상 메서드를 포함할 필요는 없습니다(추상 클래스는 일반 메서드를 포함할 수 있음).

3. 추상 메서드의 권한 한정자는 공개 또는 보호만 가능하며 기본적으로 공개입니다.

4. 클래스가 추상 클래스에서 상속되는 경우 하위 클래스는 추상 클래스의 추상 메서드를 구현해야 합니다. 하위 클래스가 상위 클래스의 추상 메서드를 구현하지 않으면 하위 클래스를 추상 클래스로 정의해야 합니다.

5. 추상 클래스에는 특성, 메서드 및 생성자가 포함될 수 있지만 생성자는 객체를 인스턴스화하는 데 사용할 수 없으며 하위 클래스에서만 호출할 수 있습니다.

2. 인터페이스

인터페이스는 인터페이스 키워드로만 수정할 수 있는 특수 클래스로 간주할 수 있습니다. 다른 사람이 호출할 수 있도록 인터페이스가 제공됩니다. Java의 인터페이스에는 다음과 같은 특징이 있습니다:

1. 인터페이스는 변수와 메소드를 포함할 수 있습니다. 변수는 암시적으로 공개 정적 최종으로 지정되고 메소드는 암시적으로 공개 추상으로 지정됩니다(JDK 1.8 이전). 인터페이스는 다중 상속을 지원합니다. 즉, 하나의 인터페이스는 여러 인터페이스를 확장할 수 있으며 이는 Java의 클래스가 여러 인터페이스에서 상속할 수 없는 문제를 간접적으로 해결합니다.

3. 클래스는 동시에 여러 인터페이스를 구현할 수 있으며 클래스는 특정 인터페이스를 구현해야 합니다. 인터페이스에서 추상 메소드를 구현하십시오. 그렇지 않으면 클래스를 추상 클래스로 정의해야 합니다.

4. JDK 1.8은 인터페이스에 두 가지 새로운 기능을 추가합니다.

(1) 기본 메소드: JDK 1.8에서는 인터페이스가 비추상을 추가합니다. 메서드 구현은 기본 키워드로 수정해야 합니다. default로 정의된 메서드는 구현하는 하위 클래스에 의해 구현되지 않을 수 있지만 하위 클래스가 여러 인터페이스를 구현하는 경우 하위 클래스에 의해서만 호출될 수 있습니다. 동일한 기본 메서드를 포함하는 경우 하위 클래스는 기본 메서드를 재정의해야 합니다.

(2) 정적 메서드: JDK 1.8에서는 static 키워드를 사용하여 메서드를 수정하고 인터페이스 정적 메서드라고 하는 구현을 제공할 수 있습니다. 인터페이스 정적 메서드는 인터페이스(인터페이스 이름. 정적 메서드 이름)를 통해서만 호출할 수 있습니다.

5. JDK 1.9에서는 프라이빗 메서드와 프라이빗 정적 메서드를 구현하도록 인터페이스가 다시 향상되었습니다. JDK 1.8에서는 인터페이스의 메소드를 구현할 수 있기 때문에 구현된 메소드가 외부로 노출되는 것을 원하지 않을 경우 메소드를 private으로 정의하면 된다.

3. 인터페이스와 추상 클래스의 차이점

1. 추상 클래스는 일반 메서드를 포함할 수 있지만 인터페이스는 공용 추상 메서드만 포함할 수 있습니다(JDK 1.8 이전).

2. 액세스 권한에는 제한이 있지만 인터페이스의 변수는 public static final로만 수정할 수 있습니다.

3. 인터페이스는 여러 인터페이스를 상속할 수 있지만 클래스는 상위 클래스를 하나만 가질 수 있으며 클래스는 여러 인터페이스를 구현할 수 있습니다.

4 , 추상 클래스는 사물 유형의 추상화이고 인터페이스는 동작의 추상화입니다. 추상 클래스를 상속하는 클래스는 "그것이 있는가" 관계를 나타내고, 인터페이스를 구현하는 클래스는 "그것이 있는가" 관계를 나타냅니다.

php 중국어 웹사이트, 수많은 무료

Java 입문 튜토리얼

, 온라인 학습을 환영합니다!

위 내용은 Java 추상 클래스와 인터페이스의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.