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

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

<시간/>

Java에서 추상화는 Abstract 클래스와 인터페이스를 사용하여 달성됩니다. 둘 다 자식 클래스 또는 구현 클래스가 구현해야 하는 추상 메서드를 포함합니다. 다음은 추상 클래스와 인터페이스의 중요한 차이점입니다.

Sr. 아니요.

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

추상 클래스와 인터페이스의 예

JavaTester.java

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

출력

Tiger eats
Lion eats