네이버 클라우드 캠프/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