네이버 클라우드 캠프/Java

[Java] 클래스와 상속

graph-dev 2023. 3. 20. 10:38
728x90

클래스 (class)

  • 클래스는 설계도입니다.
  • 자바는 객체지향언어로, 설계도를 잘 만들고, 그대로 부품을 만들고 조립해서 프로그램을 만듭니다.
    • 그러나 이걸 실질적으로 사용하는 데에는 약간의 어려움이 있습니다.
  • 이해를 위해서는 직접 만들어보는게 좋았습니다.

1. Animal 클래스 만들기

이 클래스에는 멤버변수로 age, size, legCnt, hasWing을 만들었습니다.
부모클래스로 생성하고, 하위 클래스(자식클래스)도 만듭니다.

public class Animal {
    public int age;
    public int size;
    public int legCnt;
    public boolean hasWing;


    public Animal() {

    }

    public Animal(int age, int size, int legCnt, boolean hasWing) {
        this.age = age;
        this.size = size;
        this.legCnt = legCnt;
        this.hasWing = hasWing;

    }

    public void eat() {
    System.out.println("식사를 한다.");
    }

}
  1. 상속받을 자식클래스 만들기
    자식 클래스로 Tiger를 만들었습니다.
  • 부모클래스에 생성자가 있으면, super()라는 키워드를 사용해서 부모클래스 생성자를 호출하는 방식을 사용할 수 있습니다.
  • super 자체는 부모클래스를 의미합니다.
  • 상속은 extends + 부모클래스 이 키워드를 통해 수행합니다.
package chap07_inherit.animal;

public class Tiger extends Animal {
    public String meat;
    public boolean isSwimming;
    public boolean hasPattern;
    public String color;

    public Tiger() {

    }

    public Tiger(String meat, boolean isSwimming, boolean hasPattern, String color, int age, int size,
            int legCnt, boolean hasWing) { 

        //생성자들은 super() 호출.
        super(age, size, legCnt, hasWing);


        //부모의 속성도 매개변수로 가져올 수 있다.
        this.meat = meat;
        this.isSwimming = isSwimming;
        this.hasPattern = hasPattern;
        this.color = color;

        //부모의속성 초기화
        this.age = age;
        this.size = size;
        this.legCnt = legCnt;
        this.hasWing = hasWing;


    }
}

이러한 상속이 수행된다면, 코드의 재사용성 측면에서 상당히 효과적이라 할 수 있습니다.

'네이버 클라우드 캠프 > Java' 카테고리의 다른 글

[Java] enum 열거형 정리  (0) 2023.03.29
[Java] Collections  (0) 2023.03.29
[Java] 인스턴스화  (0) 2023.03.23
[Java] Unhandled exception type IOException  (0) 2023.03.13
[Java] 기초  (0) 2023.03.13