앞서 기초 파트에서 객체지향 프로그래밍의 근간이 되는 클래스와 객체를 배웠고, 이를 바르게 정의하기 위해 필요한 변수와 메서드, 그리고 변수 초기화를 위한 생성자에 대한 내용을 학습했다. 이번 심화 파트에서는 객체지향 프로그래밍 설계를 지탱하는 핵심적인 4가지 기둥인 상속성, 캡슐화, 다형성, 추상화를 정리해보자. 1.상속(Inheritance) = 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소 가장 단순한 형태를 생각해보면, 두 클래스를 상위 클래스와 하위 클래스로 나누어 상위 클래스의 멤버(필드, 메서드, 이너 클래스)를 하위 클래스와 공유하는 것을 의미함. 이 때, 두 클래스를 서로 상속 관계 있다고 하며, 하위 클래스는 상위 클래스가 가진 모든 멤버를 상속받게 됨. 위의 그..