본문 바로가기
자바(Java)

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

by 코딩하는 욤욤이 2024. 2. 5.
반응형

Office 문서용 무료 .NET Java API 다운로드

 

Free .NET/JAVA Word, Excel, PDF, PowerPoint,Barcode Libraries

A free PDF Viewer library for developers to display, convert and print PDF documents on Windows Forms applications. Learn More Tutorials A free Word Viewer library for developers to display, convert and print Word documents on Windows Forms applications. L

www.e-iceblue.com

이번 포스팅에서는 자바 프로그래밍 언어의 추상 클래스와 인터페이스에 대해 알아보겠습니다. 

 

추상화에는 추상 클래스와 인터페이스가 사용됩니다. 

 

Abstract 클래스와 인터페이스를 모두 시작할 수 없습니다.

추상 수업

Java에서는 어떤 클래스에든 추상 키워드를 사용할 때 이 클래스를 추상 클래스라고 합니다. 

 

추상 클래스에는 변수, 추상 메서드, 메서드 본문, 생성자 및 기본() 메서드가 포함될 수 있습니다. 

 

다음은 Abstract 클래스에 대한 몇 가지 중요한 사항입니다.

  • 추상 클래스에는 추상 메서드와 비추상 메서드가 있을 수 있습니다.
  • 클래스에 추상 메서드가 있는 경우 이 클래스는 추상 클래스여야 합니다.
  • 추상 클래스를 사용하려면 확장하고 해당 메서드를 구현해야 합니다.
  • 추상 클래스를 확장하면 그 안에 있는 모든 추상 메서드에 대한 구현을 제공해야 합니다.
  • 추상 클래스를 인스턴스화할 수 없습니다.

추상 수업의 전체 프로그램은 다음과 같습니다.

abstract class AbstractClass {
    abstract void display();
}

public class AbstractClassexample extends AbstractClass {
    void display() {
        System.out.println("Abstract class example");
    }

    public static void main(String args[]) {
        AbstractClass p = new AbstractClassexample();
        p.display();
    }
}
 

위 프로그램은 다음 출력을 생성합니다.

상호 작용

Java의 인터페이스는 클래스와 유사하며 클래스의 청사진이라고 말할 수 있습니다. 

 

다음은 Abstract 클래스에 대한 몇 가지 중요한 사항입니다.

  • 인터페이스는 주로 Java에서 완전한 추상화를 달성하는 데 사용됩니다.
  • 인터페이스에는 정적 상수와 추상 메서드 본문만 있고 메서드 본문은 없습니다.
  • 인터페이스는 Java에서 다중 상속을 지원합니다.
  • 인터페이스에는 IS-A 관계도 표시됩니다.
  • 추상 클래스의 경우처럼 인터페이스를 인스턴스화할 수 없습니다.

Java에서 컴파일러는 기본적으로 인터페이스 메서드 앞에 공개 및 추상 키워드를 추가하고 변수 앞에 공개, 정적 및 최종 키워드를 추가합니다. 

 

이는 인터페이스의 모든 변수가 공개, 정적 및 최종이고 메소드가 공개 및 추상임을 의미합니다. 

 

Java에서는 클래스를 통한 다중 상속이 지원되지 않습니다. 

 

다른 클래스에서 제공하는 인터페이스 메소드 구현이 있기 때문에 인터페이스를 통해서 가능합니다. 

 

따라서 모호성은 없습니다. 

 

인터페이스의 전체 프로그램은 다음과 같습니다.

 

1단계.  먼저, display() 메소드를 선언하는 Java 인터페이스 InterfaceExample을 생성합니다. 

public interface InterfaceExample {
    public void display();
}
 

2단계.  두 번째로, display() 메소드를 선언하는 Java 클래스 PublicExample을 생성합니다. 

public class InterfaceAccess implements InterfaceExample{
    @Override
    public void display() {
        System.out.println("Interface class access the interface named  InterfaceExample");
    }

    public static void main(String args[]) {
        InterfaceAccess i = new InterfaceAccess();
        i.display();
    }
}
 

위 프로그램은 다음 출력을 생성합니다.

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

추상 수업  상호 작용 
추상 클래스에는 추상 메서드와 비추상 메서드가 포함될 수 있습니다.  인터페이스에는 추상 메서드만 있습니다. 
Abstract 키워드는 추상 클래스를 생성하는 데 사용됩니다.  인터페이스 키워드는 인터페이스를 생성하는 데 사용됩니다. 
추상 클래스에는 정적, 비정적, 최종 및 최종이 아닌 데이터 멤버가 포함될 수 있습니다.  인터페이스에는 정적 및 최종 데이터 멤버만 있습니다. 
추상 클래스에는 정적 메서드, 기본 메서드 및 생성자가 포함될 수 있습니다.  인터페이스에는 정적 메서드, 기본 메서드 또는 생성자가 포함될 수 없습니다. 
추상 클래스는 인터페이스 구현을 제공할 수 있습니다.  인터페이스는 추상 클래스의 구현을 제공할 수 없습니다. 
추상 클래스는 한 번에 하나의 클래스만 확장할 수 있습니다.  인터페이스는 한 번에 원하는 만큼의 인터페이스를 확장할 수 있습니다. 
추상 클래스는 부분 추상화를 달성하는 데 사용됩니다.  인터페이스는 완전한 추상화를 달성하는 데 사용됩니다. 
추상 클래스는 클래스 또는 추상 클래스에서 확장될 수 있습니다.  인터페이스는 인터페이스에서만 확장할 수 있습니다. 
예를 들어공개 추상 클래스 Car{
공개 추상 무효 실행();
예를 들어공개 인터페이스 Bike{
무효 실행();


추상 클래스와 인터페이스의 유사점 

  • 추상 클래스와 인터페이스는 모두 Java의 추상화에 사용됩니다.
  • 둘 다 인스턴스화할 수는 없습니다.

추상 클래스와 인터페이스의 완전한 프로그램입니다.

 

1단계.  4가지 메서드가 있는 인터페이스 만들기 

public interface Shape {
    void draw();//bydefault, public and abstract
    void print();
    void show();
    void display();
}
 

2단계.  모양 인터페이스의 한 가지 메서드 구현을 제공하는 추상 클래스 만들기.

abstract class Circle implements Shape {
    public void print() {
        System.out.println("Print image");
    }
}
 

3단계.  추상 클래스의 하위 클래스를 만듭니다. 

 

이제 나머지 메서드의 구현을 제공해야 합니다.

class Rectangle extends Circle {
    public void draw() {
        System.out.println("Draw image");
    }
    public void show() {
        System.out.println("Show image");
    }
    public void display() {
        System.out.println("Display image");
    }
}
 

4단계.  Shape 인터페이스의 메서드를 호출하는 exampletest 클래스를 생성합니다.

public class ExampleTest {
public static void main(String args[]) {
        Shape a = new Rectangle();
        a.draw();
        a.print();
        a.show();
        a.display();
    }
}
 

위 프로그램은 다음 출력을 생성합니다.

이 포스팅에서는 Java 프로그래밍 언어의 추상 클래스와 인터페이스에 대해 알아보고 이들이 서로 어떻게 다른지 알아보았습니다.

반응형