Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 인터페이스와 클래스의 차이점

<시간/>

수업

클래스는 개별 개체가 생성되는 청사진입니다. 클래스에는 다음 변수 유형이 포함될 수 있습니다.

  • 로컬 변수 − 메소드, 생성자 또는 블록 내부에 정의된 변수를 지역 변수라고 합니다. 변수는 메서드 내에서 선언 및 초기화되며 메서드가 완료되면 변수가 소멸됩니다.

  • 인스턴스 변수 − 인스턴스 변수는 클래스 내부에 있지만 메서드 외부에 있는 변수입니다. 이러한 변수는 클래스가 인스턴스화될 때 초기화됩니다. 인스턴스 변수는 특정 클래스의 모든 메서드, 생성자 또는 블록 내부에서 액세스할 수 있습니다.

  • 클래스 변수 − 클래스 변수는 static 키워드로 클래스 내, 메소드 외부에 선언된 변수입니다.

인터페이스

인터페이스는 Java에서 참조 유형입니다. 클래스와 비슷합니다. 추상 메서드 모음입니다. 클래스는 인터페이스를 구현하므로 인터페이스의 추상 메서드를 상속합니다.

추상 메서드와 함께 인터페이스에는 상수, 기본 메서드, 정적 메서드 및 중첩 형식도 포함될 수 있습니다. 메소드 본문은 기본 메소드 및 정적 메소드에만 존재합니다.

인터페이스를 작성하는 것은 클래스를 작성하는 것과 유사합니다. 그러나 클래스는 개체의 속성과 동작을 설명합니다. 그리고 인터페이스에는 클래스가 구현하는 동작이 포함됩니다.

다음은 클래스와 인터페이스의 중요한 차이점입니다.

Sr. 아니요.

클래스
인터페이스
1
지원되는 방법
클래스는 추상 메서드와 구체적인 메서드를 모두 가질 수 있습니다.
인터페이스는 추상 메소드만 가질 수 있습니다. Java 8 이상에서는 기본 메서드와 정적 메서드를 모두 가질 수 있습니다.
2
다중 상속
다중 상속은 지원되지 않습니다.
인터페이스는 다중 상속을 지원합니다.
3
지원되는 변수
최종, 비최종, 정적 및 비정적 변수가 지원됩니다.
정적 및 최종 변수만 허용됩니다.
4
구현
클래스는 인터페이스를 구현할 수 있습니다.
인터페이스는 인터페이스를 구현할 수 없으며 인터페이스를 확장할 수 있습니다.
5
키워드
클래스는 class 키워드를 사용하여 선언됩니다.
인터페이스는 interface 키워드를 사용하여 선언됩니다.
6
상속
클래스는 extends 키워드를 사용하여 다른 클래스를 상속하고 인터페이스를 구현할 수 있습니다.
인터페이스는 인터페이스만 상속할 수 있습니다.
7
상속
extends 키워드를 사용하여 클래스를 상속할 수 있습니다.
인터페이스는 implements 키워드를 사용해야만 구현할 수 있습니다.
8
액세스
클래스는 private, public과 같은 모든 유형의 멤버를 가질 수 있습니다.
인터페이스는 공개 멤버만 가질 수 있습니다.
9
생성자
클래스는 생성자 메소드를 가질 수 있습니다.
인터페이스는 생성자를 가질 수 없습니다.

클래스 대 인터페이스의 예

JavaTester.java

public class JavaTester {
   public static void main(String args[]) {
      Animal tiger = new Tiger();
      tiger.eat();
      Tiger tiger1 = new Tiger();
      tiger1.eat();
   }
}
interface Animal {
   public void eat();
}
class Tiger implements Animal {
   public void eat(){
      System.out.println("Tiger eats");
   }
}

출력

Tiger eats
Tiger eats