Java에서 추상화는 Abstract 클래스와 인터페이스를 사용하여 달성됩니다. 추상 클래스에는 자식 클래스인 추상 메서드가 포함되어 있습니다. 다음은 추상 클래스와 구체 클래스의 중요한 차이점입니다.
Sr. 아니요. | 키 | 추상 클래스 | 구체적인 클래스 |
---|---|---|---|
1 | 지원되는 방법 | 추상 클래스는 추상 메서드와 구체적인 메서드를 모두 가질 수 있습니다. | 구체적인 클래스는 구체적인 메소드만 가질 수 있습니다. 단일 추상 메서드라도 클래스를 추상화합니다. |
2 | 인스턴스화 | 추상 클래스는 new 키워드를 사용하여 인스턴스화할 수 없습니다. | 구체적인 클래스는 new 키워드를 사용하여 인스턴스화할 수 있습니다. |
3 | 추상 메서드 | 추상 클래스는 추상 메소드를 가질 수도 있고 없을 수도 있습니다. | 구체 클래스는 추상 메소드를 가질 수 없습니다. |
4 | 최종 | 추상 클래스는 최종 클래스로 선언할 수 없습니다. | 콘크리트 클래스는 final로 선언될 수 있습니다. |
5 | 키워드 | 추상 키워드를 사용하여 선언된 추상 클래스입니다. | 구체 클래스는 선언 중 추상 키워드가 없습니다. |
6 | 상속 | 추상 클래스는 extends 키워드를 사용하여 다른 클래스를 상속하고 인터페이스를 구현할 수 있습니다. | 인터페이스는 인터페이스만 상속할 수 있습니다. |
7 | 인터페이스 | 추상 클래스는 인터페이스를 단독으로 구현할 수 없습니다. 인스턴스화를 위해 인터페이스를 사용할 수 있으려면 자식 클래스가 필요합니다. | 인터페이스는 쉽게 구현할 수 있습니다. |
추상 클래스와 구체 클래스의 예
JavaTester.java
public class JavaTester { public static void main(String args[]) { Cat lion = new Lion(); lion.eat(); } } abstract class Cat { abstract public void eat(); } class Lion extends Cat{ public void eat(){ System.out.println("Lion eats"); } }
출력
Lion eats