객체 지향은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용이 된다. 객체 지향의 특징으로는 추상화, 캡슐화, 상속, 다형성 이 있는데 이 중에서 가장 중요한 것이 다형성이다. 다형성을 좀더 쉽게 알기 위해서 실세계와 비유해보겠다. 실세계와 객체 지향을 1:1로 매칭 하면 안 되고 역할과 구현으로 세상을 구분해보겠다. Ex1. 운전자와 자동차 운전자는 자동차를 운전할 때 면허증만 있으면 운전이 가능하다. 이때 자동차의 기종이 무엇이든 상관없이 운전이 가능하다. 아직 감이 안 오면 다른 예시를 들어보자 Ex2. 공연 남자 주인공과 여자 주인공을 정해야 한다. 이때 주인공들을 역할이고 그 배우들은 구현이라고 해보자. 남자 배우가 누가 오든 여자 배우가 누가 오든 공연을 ..