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