Study/Java

Java - 객체와 상속

서한성 2022. 7. 4. 09:46

객체란 무엇인가?

예를 들어 쇼핑몰의 한 고객이 옷을 구매한다고 해보자.

고객에게는 쇼핑몰에서 사용하는 아이디와 패스워드가 있을 것이고 보유 중인 쿠폰과 기타 등등의 속성이 있을 것이다.

옷은 상품의 일종일 것이고 가격과 할인율, 카테고리 등등의 속성이 있을 것이다.

 

이때, 고객과 옷을 하나의 객체라고 하고 고객이 옷을 구매하는 행위를 메소드로 구현하는 것이 프로그래밍이다.

고객의 아이디 패스워드 보유 중인 쿠폰 등등, 그리고 옷의 가격, 할인율, 카테고리 등등은 객체의 속성에 해당한다.

 

상속은 무엇인가?

위의 예에서 옷이 상품의 일종이라고 했는데 이때, 옷과 상품이 상속관계에 있다고 한다.

상품은 다양한 카테고리가 있고 그 카테고리들이 공유하는 속성이 있을 것이다.(가격, 상품평 등)

또한, 옷만이 가지는 속성도 있을 것이다.(사이즈, 색상 등)

 

이때 상품 클래스를 공통 속성에 따라 코딩하고, 옷은 상품에 상속된 상태로 옷이 가지는 속성만 코딩하는 것이다.

이렇게 하면 중복된 코드를 줄일 수 있고 효율적으로 객체를 관리할 수 있게 된다.

코드로 예를 들어 보자.

 

public class Product {  //  상품
    int price;
    String review;
}
public class Cloth extends Product {    //  옷
    int size;
    String color;
}

extends 키워드를 사용하여 옷과 상품의 상속 관계를 구현할 수 있다.

 

위의 예에서 Product class를 parent class(부모 클래스), Cloth class를 sub class(자식 클래스)라고 한다.