Search

반응형

'Inheritance'에 해당되는 글 1건

  1. 2019.06.09 [Java_Tutorial]5강-자바 언어 배우기, 상속란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]
반응형

[Oracle Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.]

[Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼]

이제 객체와 클래스가 무엇인지 이해가 되었을 것이다. 객체는 상태와 행동을 가지고 있다. 데이터 캡슐화로 메서드 내부의 변수와 로직을 외부로부터 숨길 수 있다. 클래스는 이 객체를 만들 수 있는 틀(청사진)을 제공하는 것이다.

2019/06/08 - [Software/Java] - [Java_Tutorial]4강-자바 언어 배우기, 클래스란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]4강-자바 언어 배우기, 클래스란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼, 객체지향 프로..

tiboy.tistory.com



3. 상속이란? (What is a Inheritance?)

여러분은 상속이 무엇인지 알 것이다. 일상생활에서 상속은 부모로부터 재산을 물려받을 때 상속이라는 단어를 사용한다. 객체지향 프로그래밍에서도 상속의 개념이 있다. 그럼 자바(Java) 프로그래밍에서 상속에 대해 알아본다.

이 전 글에서 우리는 보험사로 예를 들어 설명했다. 보험 상품은 다양하다. 실손보험(실비보험), 생명보험, 화재보험, 자동차보험 등등이 있다. 그리고 해당 보험에도 다양한 옵션의 상품들이 존재한다. 그럼 이들의 공통점이 무엇인지 살펴보자.

1. 보험 일련번호(코드)가 있다.


2. 신규 일자


3. 판매 종료 일자


4. 보험 종류 코드

우선 4가지만 생각해 보자. 4가지는 모든 보험에 공통적이면서 필수적인 정보이다. 물론 각 우선 4가지만 생각해 보자. 위 4가지는 모든 보험에 공통적이면서 필수적인 정보이다. 물론 각 보험마다 가지고 있는 옵션을 다를 것이다. 새로운 보험 그룹과 보험 상품을 만들기 위해서 관련 클래스를 만들어야 하는데 모든 보험상품이 공통으로 가지고 있어야 할 4가지 정보를 각 클래스마다 입력하는 것은 효율적이지 않다. 특히 객체지향 프로그래밍을 한다면 해서는 안 될 행동인 것이다. 이렇게 보험 상품 관련 클래스를 생성할 때 공통이면서 필수인 필드(변수)가 존재한다면 어딘가 자동으로 만들어 주면 편하지 않겠는가?

 

 



그래서 이 공통이면서 필수인 정보를 공유하기 위해 공통 클래스를 만든 뒤 상속해서 사용하면 된다. 이 공통 클래스를 슈퍼 클래스 (Super Class)라고 부른다. 이 슈퍼 클래스를 상속받은 하위 클래스는 (Sub Class)라고 부른다. 이렇게 슈퍼 클래스에 필수적인 필드(변수)와 메서드를 작성하고 서브 클래스에서 상속(Inheritance) 받아 사용하면 효율적이기도 하
고 모든 보험 상품의 필수 데이터와 행동을 사용하게 할 수 있는 것이다.

자바 프로그래밍에서는 주의해야 할 점이 있다. 보험 상품의 공통되며 필수인 필드와 메서드를 가지고 있는 슈퍼 클래스는 하나만 만들 수 있다는 것이다. 2개 이상을 만들어도 클래스는 1개의 슈퍼 클래스만 상속 받을 수 있기 때문에 의미가 없는 것이다. 사용할 수 없다. 모든 보험 상품의 필수 데이터와 행동을 사용하게 할 수 있는 것이다.

자바 프로그래밍에서는 주의해야 할 점이 있다. 보험 상품의 공통되며 필수인 필드와 메서드를 가지고 있는 슈퍼 클래스는 하나만 만들 수 있다는 것이다. 2개 이상을 만들어도 클래스는 1개의 슈퍼 클래스만 상속받을 수 있기 때문에 의미가 없는 것이다. 사용할 수 없다.

우선 보험 슈퍼 클래스를 만들어 본다.

이렇게 4개의 필드와 해당 필드를 입력하고 꺼낼 수 있는 메서드를 구현한 슈퍼 클래스를 이제 보험상품 클래스에서 상속해 보겠다. 상속을 할 때는 extends 키워드를 사용한다.

이렇게 상속받은 클래스 사용 방법은 추후 확인해 보고 우선 상속의 개념과 상속하는 방법에 대해 잘 이해하길 바란다.

InsGoodSubClass는 InsSuperClass의 같은 필드와 메서드를 상속받았고 사용할 수 있게 되었다. 상속으로 서브 클래스는 읽기 쉽게 되었지만 각 서브 클래스에서는 슈퍼클래스의 상태와 행위가 나타나지 않으므로 적절하게 문서화 작업을 할 수 있도록 주의해야 한다.

다음으로 객체지향 프로그램에서 필요한 인터페이스(Interface)에 대해 설명해 보겠다.

2019/06/10 - [Software/Java] - [Java_Tutorial]6강-자바 언어 배우기, 인터페이스(Interface)란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

 

[Java_Tutorial]6강-자바 언어 배우기, 인터페이스(Interface)란? [객체지향 프로그래밍 개념, 자바 프로그래밍 기초 , 자바 튜토리얼]

[Oracle의 Java Tutorial을 읽고 순서에 의해 정리한 후 본인의 경험과 이해를 바탕으로 작성된 글임을 밝힌다.] [Java Tutorial, 자바 프로그래밍 기초 배우기, Java Programming, 자바 튜토리얼] 2019/06/09 - [..

tiboy.tistory.com

객체, 클래스, 상속은 객체지향의 기본 개념이므로 잘 이해하는 게 중요하다. 혹시 그래서 어떻게 실전에서 사용해야 되는지 궁금하다면 앞으로 올라오는 글들을 꾸준히 읽어보면 도움이 될 것이다. 절대 포기하지 말고 같이 나아가길 바란다.

반응형