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

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

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-11-14 17:47:204313검색

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으로 문의하세요.