내배캠 후발대 강의에서 OAuth2 추상 클래스와 인터페이스의 차이에 대해 배웠다.
추상 클래스 (Abstract Class):
추상 클래스는 하나 이상의 추상 메서드를 포함하는 클래스로, 추상 메서드는 메서드의 시그니처만 정의하고 구현 내용이 없는 메서드를 말한다. 또한, 추상 클래스는 구현된 메서드도 가질 수 있다. 추상 클래스를 상속받은 서브 클래스는 추상 메서드를 반드시 구현해야 한다.
예시:
abstract class AbstractClass {
public abstract void abstractMethod();
public void concreteMethod() {
// 구현 내용
}
}
인터페이스 (Interface):
인터페이스는 모든 메서드가 추상 메서드인 특별한 종류의 클래스로, 메서드의 시그니처만을 정의하고 구현 내용은 없다. 인터페이스는 다중 상속이 가능하며, 클래스는 여러 인터페이스를 구현할 수 있다.
예시:
interface InterfaceExample {
void method1();
void method2();
}
차이점:
추상 클래스는 클래스의 형태이기 때문에 하나의 추상 클래스만 상속받을 수 있으며, 다른 클래스와 인터페이스를 모두 상속받을 수 있다.
인터페이스는 클래스가 아닌 인터페이스로, 다중 상속이 가능하다. 클래스는 하나의 부모 클래스만 상속받을 수 있지만, 인터페이스는 여러 개를 구현할 수 있다.
추상 클래스는 추상 메서드와 구현된 메서드 모두를 포함할 수 있다. 반면, 인터페이스는 모든 메서드가 추상 메서드이므로 구현 내용은 없다.
추상 클래스와 인터페이스는 자바에서 다형성을 구현하는데 중요한 역할을 하며, 다양한 디자인 패턴과 객체지향 원칙을 적용하는데 활용된다. 올바른 상황에 맞게 추상 클래스와 인터페이스를 선택하여 사용함으로써 유연하고 확장 가능한 코드를 작성할 수 있을 것이다.
'Java' 카테고리의 다른 글
| 자바 싱글톤에 대해 알아보자 (0) | 2023.08.02 |
|---|---|
| 개인 과제 피드백 정리(Try-catch 예외처리를 사용해보자.) (0) | 2023.06.08 |
| 키오스크 백오피스를 구현 (0) | 2023.06.07 |
| 키오스크 메뉴 구현 (0) | 2023.06.01 |
| 키오스크 메인화면 구현 (0) | 2023.05.31 |