>Java >java지도 시간 >Java의 인터페이스와 추상 클래스의 사용법과 차이점

Java의 인터페이스와 추상 클래스의 사용법과 차이점

WBOY
WBOY원래의
2024-05-01 09:42:01578검색

인터페이스와 추상 클래스는 행동 계약을 정의하는 데 사용됩니다. 인터페이스는 메소드 서명을 정의하는 반면 추상 클래스는 메소드 선언 및 구현을 포함합니다. 인터페이스는 인스턴스화할 수 없지만 추상 클래스는 인스턴스화할 수 있습니다. 인터페이스의 메서드는 기본적으로 공개 추상화를 사용하고, 추상 클래스의 메서드는 기본적으로 보호된 추상화를 사용합니다. 인터페이스는 공통 API를 정의하는 데 사용되는 반면 추상 클래스는 기본 클래스를 생성하고 기본 동작을 제공하는 데 사용됩니다.

Java 中接口和抽象类的用法和区别

Java에서 인터페이스와 추상 클래스의 사용법과 차이점

소개

인터페이스와 추상 클래스는 둘 다 동작 계약을 정의하는 데 사용되는 두 가지 매우 중요한 개념입니다. 사용법과 특징.

Interface

  • 인터페이스는 수행할 작업(메서드) 집합을 정의하지만 이러한 메서드를 구현하지 않는 특수 클래스입니다.
  • 순수한 추상 유형이므로 인스턴스화할 수 없습니다.
  • 인터페이스를 구현하는 클래스는 인터페이스에 선언된 모든 메서드를 구현해야 합니다.
  • 인터페이스는 다른 인터페이스를 상속할 수 있지만 클래스는 상속할 수 없습니다.
  • 인터페이스의 메서드는 기본적으로 공개 추상입니다.

코드 예:

public interface Drawable {
    void draw();
}

Abstract Class

  • 추상 클래스는 추상 메서드와 구체적인 메서드를 포함하는 클래스입니다.
  • 추상 메서드는 선언만 되고 구현되지 않는 메서드입니다.
  • 추상 클래스를 인스턴스화하면 예외가 발생합니다.
  • 추상 클래스는 다른 클래스나 추상 클래스를 상속할 수 있습니다.
  • 추상 클래스의 메서드는 기본적으로 보호됩니다.

코드 예:

public abstract class Shape {
    protected String color;
    public abstract void draw();
}

Usage

Interface: 여러 클래스에서 구현할 수 있는 통합 인터페이스와 같은 공개 API를 정의하는 데 사용됩니다.

  • 예를 들어 Drawable 인터페이스는 특정 구현에 관계없이 그릴 수 있는 모든 클래스를 나타낼 수 있습니다. Drawable 接口可以表示任何可以绘制的类,而无需考虑具体的实现。

抽象类:用于创建一个类的基类,并提供一些基本行为和状态,同时允许子类定制这些行为和状态。

  • 例如,一个 Shape 抽象类可以提供一些形状的共同属性(如颜色),并定义一个抽象的 draw() 方法,用于子类实现具体的绘制行为。

差异

  • 接口只包含方法声明,而抽象类既包含方法声明也包含实现。
  • 接口不能实例化,而抽象类可以派生出子类。
  • 接口中的方法默认是公共抽象的,而抽象类中的方法默认是受保护的抽象的。

实战案例

考虑一个自定义形状绘制应用程序,其中需要显示各种形状。

  • 可以创建一个 Drawable 接口来定义绘制方法。
  • 然后可以创建 RectangleCircle 等形状的类,这些类实现 Drawable 接口并提供自己的绘制实现。
  • 应用程序可以遍历各种形状并调用 draw()
🎜추상 클래스🎜: 클래스의 기본 클래스를 만들고 몇 가지 기본 동작과 상태를 제공하는 동시에 하위 클래스가 이러한 동작과 상태를 사용자 정의할 수 있도록 하는 데 사용됩니다. 🎜🎜🎜예를 들어 Shape 추상 클래스는 모양의 몇 가지 공통 속성(예: 색상)을 제공하고 하위 클래스 구현을 위한 추상 draw() 메서드를 정의할 수 있습니다. 특정 그리기 동작 . 🎜🎜🎜🎜Difference🎜🎜🎜🎜인터페이스에는 메서드 선언만 포함되는 반면 추상 클래스에는 메서드 선언과 구현이 모두 포함됩니다. 🎜🎜인터페이스는 인스턴스화할 수 없지만 추상 클래스는 하위 클래스를 파생할 수 있습니다. 🎜🎜인터페이스의 메서드는 기본적으로 공개 추상이고, 추상 클래스의 메서드는 기본적으로 보호 추상입니다. 🎜🎜🎜🎜실용 사례🎜🎜🎜다양한 모양을 표시해야 하는 사용자 정의 모양 그리기 애플리케이션을 고려해 보세요. 🎜🎜🎜 Drawable 인터페이스를 생성하여 그리기 방법을 정의할 수 있습니다. 🎜🎜그런 다음 Drawable 인터페이스를 구현하고 자체 그리기 구현을 제공하는 Rectangle, Circle 및 기타 모양 클래스를 만들 수 있습니다. 🎜🎜애플리케이션은 다양한 모양을 반복하고 draw() 메서드를 호출하여 표시할 수 있습니다. 🎜🎜

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

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