꾸양!
일단 시작.
꾸양!
💁‍♀️ 깃허브 링크
전체 방문자
오늘
어제
  • 분류 전체보기 (112)
    • STUDY (85)
      • JAVA (36)
      • Algorithm (1)
      • SpringBoot (9)
      • SQL (4)
      • GIT (16)
      • Front (1)
      • JPA (9)
      • Trouble Shooting (9)
    • SPARTA Project (26)
      • WIL (14)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 클린코드
  • 트러블슈팅
  • 숫자짝꿍
  • 프로그래머스
  • 인프콘2024
  • Repository
  • 잔디돌려줘
  • 코드효율성
  • 인프런
  • intellij
  • 랠릿

최근 댓글

최근 글

hELLO · Designed By 정상우.
꾸양!

일단 시작.

STUDY/JAVA

[TIL] 추상클래스와 인터페이스의 차이.

2023. 5. 30. 00:20

자바 문법 종합반 3주차에 배웠던 것들을 이용하여 계산기의 기능을 코드로 구현하는 과제를 해보았다, 어떤 걸 이용하면 될까 하고 생각하다가 3주차에 배웠던 개념은 상속, 추상클래스, 인터페이스 등이 핵심적이라 이런 개념을 이용하여 구현하면 될 것 같았다. 과제에서는 무엇을 이용해야 할지 직관적으로 알기 쉽게 클래스 이름이 Abstract...로 지정되어 있는것을 보니 추상 클래스를 이용하면 될 것 같았다.

근데 추상 클래스와 인터페이스의 차이가 뭔지 고민에 빠졌다. 어차피 추상 클래스도 인터페이스도 추상 메서드가 아닌 다른 메서드를 쓸 수 있고, 둘 다 extends하거나 implements 할 때  메서드를 필수적으로 구현을 해줘야 한다. 내가 강의에서 배웠던 차이는 인터페이스의 멤버변수는 public static final이어야 하고 추상 클래스는 안 그래도 된다는 것..? 정도였다. 실무에서는 어느 쪽을 많이 쓰고 왜 쓰는지 궁금해서 찾아봤다.

자바의 추상 클래스와 인터페이스
"강이"의 JAVA 강좌 자바의 추상 클래스와 인터페이스

 

링크에 다 있는 글들이지만 두 링크에서 내가 필요한 부분을 정리하면 이렇다.


추상 클래스

목적

추상 클래스를 상속 받아서 기능을 이용하고 확장시키는 데 있다.

어떤 상황에 쓰는가

같은 종류나 행동들을 구현할 게 많을 때 쓰고 상속에 대한 계층구조를 명확히 표현할 때 쓴다. 원래 추상 클래스는 일반메서드를 쓸 수 있는 점에서 인터페이스와 달랐으나, 자바 8 이후로 인터페이스에서도  default 키워드로 메서드를 구현할 수 있다. 그리고 추상 클래스는 인터페이스보다 속도가 빠르다. 인터페이스는 관련 메서드들을 찾기 위해 부가적인 일들을 더 처리하기 때문이다.


인터페이스

목적

함수의 껍데기만 있고 그 함수의 구현을 강제하기 위해서 쓴다. 구현을 강제함으로써 구현 객체의 같은 동작을 보장할 수 있다.

어떤 상황에 쓰는가

디자인을 구성하는 요소들이 자주 바뀔 때 쓰면 유용하다. 메서드 형태만 서로 공유해서 구현되는 상황일 때 적합하고 클래스 전체가 아닌 메서드들만 쓰고 싶을 때 인터페이스를 이용하면 효과적이다. 실무에서는 인터페이스의 사용빈도가 높은데 그 이유 중 하나가 동시개발이 가능하므로 시간을 많이 단축시킬 수 있다는 점이다.


내일부터 캠프에서 내준 개인 과제를 해 봐야 하는데 둘 다를 사용할지 어느 하나를 정해서 사용할지 잘 생각해봐야겠다.

저작자표시 (새창열림)

'STUDY > JAVA' 카테고리의 다른 글

[TIL] contain 메서드 공부하기  (0) 2023.06.02
[TIL] 실무에서 Stream은 어떻게 쓰이고 있을까?  (0) 2023.05.30
[TIL] 프로그래머스 - 신규 아이디 추천  (0) 2023.05.28
[TIL] 다형성 코드로 익혀보기  (0) 2023.05.27
[TIL] 프로그래머스 - 완주하지 못한 선수  (0) 2023.05.26
    'STUDY/JAVA' 카테고리의 다른 글
    • [TIL] contain 메서드 공부하기
    • [TIL] 실무에서 Stream은 어떻게 쓰이고 있을까?
    • [TIL] 프로그래머스 - 신규 아이디 추천
    • [TIL] 다형성 코드로 익혀보기
    꾸양!
    꾸양!
    차근차근 한 발자국씩.

    티스토리툴바