JAVA 상속

우주·2023년 9월 18일
0

JAVA

목록 보기
2/2
post-thumbnail

자바 상속의 기본개념

상속을 통해 하나의 클래스가 다른 클래스의 속성과 메소드를 물려받을 수 있다.

왜쓰는데?

  • 코드의 재사용성을 높인다
  • 유지보수를 용이하게 할 수 있다.

자바에서 상속을 사용하려면 상속받으려는 클래스에 extends라는 키워드를 사용하면 된다.

class Animal {
    void makeSound() {
        System.out.println("Some generic animal sound");
    }
}

class Dog extends Animal {
    // Dog 클래스는 Animal 클래스의 모든 속성과 메서드를 이어받는다.
    void makeSound() {
        System.out.println("Woof");
    }
}

메소드 오버라이딩(Overriding)

여기서 Dog 클래스는 Animal 클래스를 상속받았다.

Animal 클래스가 가진 makeSound() 소리내기라는 메소드 특성을 Dog 클래스가 물려받게 되는 것이다.

근데 조금 다르다?

Dog 클래스의 makeSound()를 보게되면 출력되는 메세지가 다른데, 이는 동물마다 makeSound를 하지만, 각각이 내는 소리가 달라서 변형이 일어난 거라고 생각하면 된다.

이를 메소드 오버라이딩(Overriding) 이라고 한다.

Dog는 Animal이다 라는 관계는 성립한다.
하지만 Animal은 Dog이다라는 관계는 성립하지 않는다.

코드를 읽을 때 관계가 성립하는 지 여부가 상속에 있어서 가장 중요한 요인이기 때문에 코드를 설계할 때 주의해야한다.

profile
개발합니다. 회고합니다.

0개의 댓글