자바/자바의 정석 Ch.7 객체지향 프로그래밍 II

ch7-33,34 추상 클래스의 작성2

2023. 4. 22. 14:31
목차
  1.  ch7-34 추상 클래스의 작성

 ch7-34 추상 클래스의 작성

여러개의 클래스가 있다고 할 때 한 부분만 다르면 객체지향 개념에서는 공통된 부분만 뽑아 조상으로 만든다. 조상은 미완성 이므로 추상 클래스이고, 자손이 조상을 상속받아 다른 부분만 넣어 완성한다. 중복을 제거할 수 있다.

 

새로운 클래스가 만들어지면 조상 상속받아서 새로운 부분만 추가하면 된다. 객체 생성이 더 편해진다.

 

공통된 부분이 바뀌면 위는 3번 바꿔야 하지만, 아래는 공통 부분 1번만 바꾸면 되어 유지보수가 편하다. 코드의 관리, 변경이 용이하다.

 

추상 클래스를 한꺼번에 만들지 않고 위와 같이 단계적으로 만들면 장점이 있다.

 

공통된 부분을 바꾸고 싶을 때, 3번 째 자손에서 상속받아 구현하지 않고 2번 째 자손에서 상속받아 구현하면 변경에 훨씬 용이하다.

 

추상화는 불명확하고 반대인 구체화는 명확하다. 구체적이고 명확한 것이 좋은게 아닐까? 하는 의문이 들 수 있다. 프로그래밍에서 추상회된 코드는 구체화된 코드보다 유연하다. 변경에 유리하다.

 

GregorianCalendar 클래스는 Calendar 클래스를 상속받는 자손 클래스이다. 참조 변수의 타입과 객체의 타입이 일치하면 구체적이다. 하지만 Calendar 클래스는 추상 클래스이기 때문에 객체생성이 불가능하고, Calendar.getInstance() 메소드를 사용해야 한다. 다형성으로 Calendar 조상 타입의 참조 변수에 Calendar의 자손 객체 getInstance()를 반환할 수 있는데 이 인스턴스가 무엇을 반환할지 불분명하다.

 

getInstance()가 추상적이기 때문에 위와 같이 createCalendar 메서드를 만들어서 caltype에 따라 다른 객체를 생성해서 반환할 수 있다. 구체적으로 적으면 cal 사용한 곳을 전부 바꿔야 한다. 추상적으로 적으면 getInstance()에 들어있는 메서드인 createCalendar만 바꾸면 되므로 변경에 용이하다.

'자바 > 자바의 정석 Ch.7 객체지향 프로그래밍 II' 카테고리의 다른 글

ch7-38 인터페이스와 다형성  (0) 2023.05.04
ch7-35~37 인터페이스의 선언, 상속, 구현  (0) 2023.04.24
ch7-33,34 추상클래스의작성1  (0) 2023.04.22
ch7-31,32 추상 클래스, 추상 메서드  (0) 2023.04.22
ch7-29,30 여러 종류의 객체를 배열로 다루기  (0) 2023.04.21
  1.  ch7-34 추상 클래스의 작성
'자바/자바의 정석 Ch.7 객체지향 프로그래밍 II' 카테고리의 다른 글
  • ch7-38 인터페이스와 다형성
  • ch7-35~37 인터페이스의 선언, 상속, 구현
  • ch7-33,34 추상클래스의작성1
  • ch7-31,32 추상 클래스, 추상 메서드
돌맹이떼굴떼굴
돌맹이떼굴떼굴
돌맹이떼굴떼굴
떼굴떼굴개발자
돌맹이떼굴떼굴
전체
오늘
어제
  • 분류 전체보기 (139)
    • C언어 (6)
      • 홍정모 C언어 (6)
    • 자바 (24)
      • 자바의 정석 Ch.7 객체지향 프로그래밍 II (22)
      • 이것이 자바다 (1)
    • 스프링의 정석 (38)
      • Ch. 02 Spring MVC (34)
      • Ch. 03 Spring DI와 AOP (1)
      • spring error (2)
    • JavaScript (7)
    • HTML&CSS (2)
      • 제대로 파는 HTML CSS - by 얄코 (1)
    • React.js, 스프링 부트, AWS로 배우는 .. (12)
    • BACKJOON, 백준 (7)
    • 프로그래머스 (1)
    • Error (10)
      • Java (5)
    • Spring (5)
    • 자료구조 (1)
    • JPA (2)
    • Vue (1)
    • Git (5)
    • Linux (0)
    • HTML (1)
    • DB (3)
    • Web (2)
    • 잡다 (1)
    • 개발 프로젝트 (2)
    • doom (1)
    • 취업 (3)
    • Network (0)
    • 재테크 (2)
    • 일상 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 이직확인서
  • 취업연계
  • 애크논크림
  • 향기지속로션
  • 보령약국
  • 세타필로션
  • 비맥스메타
  • 비맥스메타정
  • 온유약국
  • 종로5가약국
  • 비전공
  • 비맥스가격
  • 향기부각로션
  • 갈더마
  • 비맥스
  • KOSA
  • 세타필세라마이드로션
  • 고보습로션
  • 비전공개발자
  • kosa혜화

최근 댓글

최근 글

hELLO · Designed By 정상우.
돌맹이떼굴떼굴
ch7-33,34 추상 클래스의 작성2
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.