■ 상속
extends 키워드를 사용하고 대상은 하나만 선택 가능하다.
ex) Animal , Pet 부모 클래스 둘 중 하나만 선택해야함. 두 개오면 뭘 불러와야 할 지 모름
class Dog extends Animal Pet
Car 클래스는 부모클래스이고 GasCar는 자식 클래스이다.
public class Car {
public void move() {
System.out.println("차를 이동합니다.");
}
}
public class GasCar extends Car {
public void fillUp() {
System.out.println("기름을 주유합니다.");
}
}
public class CarMain {
public static void mian(String[] args) {
GasCar gasCar = new GasCar();
gasCar.move();
gasCar.fillUp();
}
}
extends Car를 사용해서 부모 클래스인 Car를 상속 받는다. 덕분에 GasCar에서도 move()를 사용할 수 있다.
처음에 move()가 GasCar에 있는지를 확인하고 없으면 부모인 Car한테가 move() 기능이 있는지 본다. 있으면 사용 가능하다. 이게 상속.
■ 상속과 메서드 오버라이딩
부모 타입의 기능을 자식에서 다르게 재정의 하고 싶을 수 있다. 예를 들어 Car.move() 기능이 있는데 출력 내용을 변경하고 싶을 때 부모에게서 상속 받은 기능을 자식이 재정의 하는 것을 메서드 오버라이딩(Overriding)이라한다.
'JAVA' 카테고리의 다른 글
[JAVA] 다형성(2) - abstract, 인터페이스 (0) | 2025.03.30 |
---|---|
[JAVA] 다형성(1) - 다형성 참조, 캐스팅, instanceof 연산자 (0) | 2025.03.23 |
[JAVA] final (0) | 2025.03.16 |
[JAVA] static 변수, static 메서드 (0) | 2025.03.01 |
[JAVA] 접근제어자 (private, public, protected, default) (1) | 2025.02.21 |