이 기사에서는 초보자가 Java 프로그래밍의 개념을 심도 있게 학습하고 정확하게 이해하는 데 중요한 Java 학습에서 인터페이스와 추상 클래스의 차이점을 분석합니다. 세부사항은 다음과 같습니다:
Java 초보자는 종종 다음과 같은 질문을 합니다. 인터페이스와 추상 클래스의 차이점은 무엇입니까? 인터페이스와 추상 클래스를 사용하기로 선택한 기준은 무엇입니까?
인터페이스와 추상 클래스의 개념은 다릅니다. 인터페이스는 액션의 추상화이고, 추상 클래스는 소스의 추상화입니다.
추상 클래스는 이 객체가 무엇인지 나타냅니다. 인터페이스는 이 개체가 수행할 수 있는 작업을 나타냅니다. 예를 들어 남성과 여성, 이 두 클래스(클래스라면...)의 추상 클래스는 사람입니다. 그들은 모두 인간이라고 설명하십시오.
사람도 먹을 수 있고, 개도 먹을 수 있습니다. "먹기"를 인터페이스로 정의한 다음 이러한 클래스에서 이를 구현하도록 할 수 있습니다.
따라서 고급 언어에서 클래스는 하나의 클래스(추상 클래스)만 상속할 수 있지만(사람이 생물이면서 동시에 무생물이 될 수 없는 것처럼) 여러 인터페이스(먹는 인터페이스)를 구현할 수 있습니다. , 걷기 인터페이스).
첫 번째 요점. 인터페이스는 추상 클래스의 변형이며 인터페이스의 모든 메서드는 추상입니다. 추상 클래스는 메소드를 구현하지 않고 메소드의 존재를 선언하는 클래스입니다.
두 번째 요점. 인터페이스는 상속될 수 있지만 추상 클래스는 상속될 수 없습니다. (참고: 원 작성자가 여기서 실수를 했습니다. 추상 클래스는 상속될 수 있습니다. 모든 하위 클래스가 추상 클래스의 메서드를 구현하는 경우 하위 클래스는 추상 클래스가 아닙니다. 그렇지 않으면 그 중 하나가 됩니다. 구현되지 않은 경우 하위 클래스도 추상 클래스입니다.
세 번째 요점. 인터페이스 정의 메서드는 구현할 수 없지만 추상 클래스는 일부 메서드를 구현할 수 있습니다.
네 번째 요점. 인터페이스의 기본 데이터 유형은 정적이지만 추상 이미지는 그렇지 않습니다.
사물의 본질에 집중할 때는 추상 클래스를 사용하고, 작업에 집중할 때는 인터페이스를 사용하세요.
추상 클래스의 기능은 인터페이스의 기능을 훨씬 능가하지만 추상 클래스를 정의하는 데 드는 비용은 높습니다 . 고급 언어에서는 (실제 디자인 측면에서도) 각 클래스는 하나의 클래스만 상속받을 수 있기 때문입니다. 이 클래스에서는 모든 하위 클래스의 모든 공통 기능을 상속하거나 작성해야 합니다. 인터페이스의 기능은 훨씬 약하지만 이는 동작에 대한 설명일 뿐입니다. 그리고 하나의 클래스에서 여러 인터페이스를 동시에 구현할 수 있습니다. 설계 단계에서는 난이도가 줄어들 것입니다.