상속
- 클래스 간에 부모-자식 관계를 형성하여 코드의 재사용성과 계층 구조를 구축
- 자식 클래스는 부모 클래스의 속성과 메소드를 상속받아 사용
- 자식 클래스만의 속성과 메소드도 따로 정의 가능
- 즉 부모클래스를 확장하여 새 클래스를 만든다는 의미이다.
- 코드의 중복을 피하고, 계층적인 구조를 표현하며 유지 보수성을 향상시킨다.
예제 코드
class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + "이(가) 먹이를 먹습니다.");
}
}
class Cat extends Animal {
private String color;
public Cat(String name, String color) {
super(name);
this.color = color;
}
public void meow() {
System.out.println(color + " 고양이 " + name + "이(가) 야옹 소리를 내면서 움직입니다.");
}
}
class Dog extends Animal {
private String breed;
public Dog(String name, String breed) {
super(name);
this.breed = breed;
}
public void bark() {
System.out.println(breed + " 종의 개 " + name + "이(가) 짖으면서 움직입니다.");
}
}
public class Main {
public static void main(String[] args) {
Cat cat = new Cat("나비", "흰색");
cat.eat();
cat.meow();
Dog dog = new Dog("맥스", "래브라도");
dog.eat();
dog.bark();
}
}
- Animal 클래스가 부모 클래스
- Cat, Dog 클래스는 Animal 클래스를 상속받은 자식 클래스
- 자식 클래스는 부모 클래스의 속성 name과 메소드 eat()을 상속받아 사용 가능하다.
- 자식 클래스는 자신들만의 속성과 메소드인 meow()와 bark()가 존재