예제 코드를 봅시다.
abstract class Shape {
int x, y;
Shape(int x, int y) {
this.x = x;
this.y = y;
}
abstract void draw(); // 추상 메서드
}
class Circle extends Shape {
int radius;
Circle(int x, int y, int radius) {
super(x, y);
this.radius = radius;
}
void draw() {
System.out.println("원을 그립니다.");
}
}
예제 코드를 봅시다.
interface Drawable {
void draw(); // 추상 메서드
}
class Circle implements Drawable {
int x, y, radius;
Circle(int x, int y, int radius) {
this.x = x;
this.y = y;
this.radius = radius;
}
public void draw() {
System.out.println("원을 그립니다.");
}
}
추상클래스는 클래스와 유사하게 상태와 메서드를 가질 수 있고, 일부 메서드는 구현된 상태로 제공됩니다. 반면에 인터페이스는 메서드 선언만을 제공하며, 다중 상속이 가능합니다. 추상클래스는 공통된 코드를 추출하여 재사용하고자 할 때 사용하며, 인터페이스는 다양한 객체들이 특정 동작을 공유할 수 있도록 할 때 사용합니다. 선택은 사용하려는 목적과 상황에 따라 달라집니다.
[자바 CS지식] 객체 vs 인스턴스 어떻게 다를까? (0) | 2024.02.13 |
---|---|
[자바 CS지식] MVC1과 MVC2의 차이 (2) | 2024.02.12 |
[자바 CS지식] 자바의 객체지향 프로그래밍 특징 (0) | 2024.02.12 |
[자바 CS지식] 체크 예외와 언체크 예외/런타임 예외의 차이 (0) | 2024.02.12 |
[자바 CS지식] 오버로딩과 오버라이딩의 차이 (0) | 2024.02.12 |