
오버라이딩이란 상속관계에 있는 부모 클래스에서 이미 정의 된 메서드를 자식 클래스에서 같은 의미를 갖는 메서드로 다시 정의하는 것을 말한다.
객체지향언어는 캡슐화, 다형성, 상속성이라는 중요한 특징들을 가지고 있는데,
그 중 다형성과 상속성의 의미로 클래스를 유연하게 사용하기 위해 오버라이딩이 필요하다.

자식클래스의 인스턴스는 부모클래스를 가지고 있는 형태이다. 그래서 자식인스턴스를
부모 인스턴스로 형변환이 가능하다.
자식인스턴스를 부모 인스턴스로 형변환후 부모 메서드를 호출해도,
자식의 오버라이딩된 메서드가 호출된다는 것을 알수있다.
코드를 입//Parent클래스
class Parent{
void display(){System.out.println("부모메서드 호출");}
}
//Child 클래스
class Child extends Parent{
void display(){System.out.println("자식메서드 호출");}
}
//Parent클래스
public class Inheritance {
public static void main(String[] args) {
Parent pa = new Parent();
pa.display(); //"부모메서드 호출"
Child ch = new Child();
ch.display(); //"자식메서드 호출"
Parent pc = new Child();
pc.display(); //"자식메서드 호출"
}
}