상속과 오버라이딩
상속(extends, inheritance)
상속이란 자식 클래스(서브 클래스)에서 부모클래스(슈퍼 클래스)의 필드와 메소드를 참조하여 쓸 수 있게 해준다. 기본적으로 하나의 클래스에 하나의 슈퍼 클래스 밖에 상속 할 수 없다.
Class Vehicle {
public int speed;
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
}
class Car extends Vehicle {
}
public class Test {
public static void main(String[] args) {
Car A = new Car();
A.getSpeed();
}
}
Car클래스에는 getSpeed메소드가 없지만 상속된 Vehicle에 getspeed메소드가 있기 때문에 사용 가능하다.
상속의 특징은 다음과 같다.
상속(부모->자식)
- 부모꺼는 내꺼다.
- private 선언한 것은 상속이 안된다.
- protected 선언한것은 상속이 된다.
- 자식꺼는 자식꺼다.
- 부모도가지고있고 나도 같은 객체를 가지고 있으면 내꺼쓴다.
오버 라이딩(Override)
슈퍼 클래스에 존재하는 필드나 메소드를 서브 클래스에서 재정의하여 사용할 수 있다.
오버 라이딩을 통한 슈퍼 클래스를 생성할 때는 super 키워드를 사용한다.
오버라이딩을 위해 필드나 메소드를 정의할 때 바로 위 상단에 @Override 문구를 넣어주면 오타를 방지할 수 있다. (슈퍼 클래스에 존재하지 않은 메소드를 오버라이드 하려고하면 컴파일 과정에서 에러 발생)