개발머해니

[java] 추상클래스와 일반 클래스의 차이(abstract / class) 본문

백엔드

[java] 추상클래스와 일반 클래스의 차이(abstract / class)

왕행님 2024. 4. 30. 21:14
728x90
반응형

springboot와 jpa를 활용한 프로젝트를 생성 중인데 데이터 입력일자와 수정일자가 자동으로 입력될 수 있도록 모든 dto가 이러한 기능을  상속받게 만들고 싶었습니다.

근데 인터넷 예제들 중 어떤 것들은 abstract로, 어떤 예제들은 class로 만들었기 때문에 차이에 대해서 물어보았습니다.

 

대답은 아래와 같았습니다. 

 

입력일자와 수정일자를 자동으로 셋팅해주는 기능을 모든 DTO가 상속받을 수 있도록 구현하려면 보통 추상 클래스나 클래스의 메서드로

구현합니다. 추상 클래스와 클래스의 메서드를 사용하는 것 모두 가능하며, 각각의 방식에는 장단점이 있습니다.

 

 

1. 추상 클래스(Abstract class) 사용:


  • 추상 클래스를 사용하여 공통 필드와 메서드를 정의하고, 이를 상속받아 사용합니다.
  • 장점: 코드 재사용성이 높아집니다. 공통적인 기능을 한 곳에서 관리할 수 있어 유지보수가 편리합니다.
  • 단점: Java는 다중 상속을 지원하지 않으므로, 이미 다른 클래스를 상속받은 경우 추상 클래스를 상속받을 수 없습니다.

 

2. 클래스의 메서드 사용:


  • 클래스 내에 공통적으로 필요한 메서드를 정의하여 사용합니다. 필요한 클래스에 메서드를 호출하여 사용합니다.
  • 장점: 클래스의 메서드를 사용하기 때문에 다중 상속이 필요하지 않습니다. 필요한 클래스에 직접 메서드를 호출하여 사용할 수 있습니다.
  • 단점: 각각의 클래스에 메서드를 호출해야 하므로, 코드 중복이 발생할 수 있습니다.

 

 

즉! 어떤 방법을 선택할지는 프로젝트의 구조와 요구 사항에 따라 달라집니다. 보통은 추상 클래스를 사용하여 공통적인 기능을 구현하고, 필요한 경우 클래스의 메서드를 사용하여 추가적인 기능을 구현한다고 합니다.

728x90
반응형