반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프로그래머스
- it자격증
- 학점은행제무료강의
- 맥북환경설정
- 코딩테스트
- DB
- 디렉토리계층구조
- 컴퓨터공학학사취득
- 채널계
- 오라클
- oracleapex
- 모놀리식
- python
- 은행IT
- SQL
- Pass By Value
- MSA
- union
- fastapi
- jdk
- 개인프로필스튜디오창업
- Homebrew
- 맥북
- 렌탈스튜디오창업
- jdk17
- 계정계
- 맥북셋팅
- 코어뱅킹
- 의사결정나무모형
- 학점은행제
Archives
- Today
- Total
개발머해니
[java] 추상클래스와 일반 클래스의 차이(abstract / class) 본문
728x90
반응형
springboot와 jpa를 활용한 프로젝트를 생성 중인데 데이터 입력일자와 수정일자가 자동으로 입력될 수 있도록 모든 dto가 이러한 기능을 상속받게 만들고 싶었습니다.
근데 인터넷 예제들 중 어떤 것들은 abstract로, 어떤 예제들은 class로 만들었기 때문에 차이에 대해서 물어보았습니다.
대답은 아래와 같았습니다.
입력일자와 수정일자를 자동으로 셋팅해주는 기능을 모든 DTO가 상속받을 수 있도록 구현하려면 보통 추상 클래스나 클래스의 메서드로
구현합니다. 추상 클래스와 클래스의 메서드를 사용하는 것 모두 가능하며, 각각의 방식에는 장단점이 있습니다.
1. 추상 클래스(Abstract class) 사용:
- 추상 클래스를 사용하여 공통 필드와 메서드를 정의하고, 이를 상속받아 사용합니다.
- 장점: 코드 재사용성이 높아집니다. 공통적인 기능을 한 곳에서 관리할 수 있어 유지보수가 편리합니다.
- 단점: Java는 다중 상속을 지원하지 않으므로, 이미 다른 클래스를 상속받은 경우 추상 클래스를 상속받을 수 없습니다.
2. 클래스의 메서드 사용:
- 클래스 내에 공통적으로 필요한 메서드를 정의하여 사용합니다. 필요한 클래스에 메서드를 호출하여 사용합니다.
- 장점: 클래스의 메서드를 사용하기 때문에 다중 상속이 필요하지 않습니다. 필요한 클래스에 직접 메서드를 호출하여 사용할 수 있습니다.
- 단점: 각각의 클래스에 메서드를 호출해야 하므로, 코드 중복이 발생할 수 있습니다.
즉! 어떤 방법을 선택할지는 프로젝트의 구조와 요구 사항에 따라 달라집니다. 보통은 추상 클래스를 사용하여 공통적인 기능을 구현하고, 필요한 경우 클래스의 메서드를 사용하여 추가적인 기능을 구현한다고 합니다.
728x90
반응형
'백엔드' 카테고리의 다른 글
python 웹 프레임워크로 Fastapi 사용하는 이유 (0) | 2024.08.10 |
---|---|
[JPA] 대문자로 테이블을 관리하고 싶은데 소문자로 생성된다면? (0) | 2024.05.05 |
[mac] 자바 버전 여러 개 깔려있을 때, 1초 만에 환경변수 변경하기 (0) | 2024.03.12 |
스프링부트 CI/CD 구축하기 (2) AWS EC2에 탄력적 IP부여하기 (0) | 2024.03.03 |
스프링부트 CI/CD 구축하기 (1) AWS EC2생성 (0) | 2024.03.03 |