객체 지향 프로그래밍에 대해 알아보자.
객체 지향 프로그래밍 이란 독립적인 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임이다.
프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
클래스가 가진 특징(Property,Method)을 다른 클래스가 그대로 물려받는것,
기본 클래스에 파생 클래스가 상속받아 공통된 특징을 갖게되고 추가적으로 파생 클래스에 특징을 추가해
새로운 특징의 클래스를 만들 수 있다.
상속이 있기 때문에 코드를 재활용 할 수 있고 그렇기 때문에 유지보수와 생산성이 증가한다.
하나의 메소드나 클래스가 있을 때 이것들이 다향한 방법으로 동작하는 것을 의미
오버라이딩(Overriding), 오버로딩(Overloading)
오버라이딩(Overriding) - 부모클래스의 메소드와 같은 이름을 사용하며 매개변수도 같되 내부 소스를 재정의하는 것
오버로딩(Overloading) - 같은 이름의 함수를 여러 개 정의한 후 매개변수를 다르게 하여 같은 이름을 경우에 따라 호출하여 사용하는 것
실행 시간 중 일어나거나 실행 과정에서 변경될 수 있는 바인딩이다.
동적바인딩은 런타임에 호출될 함수가 결정된다.
프로그래밍의 유연성을 높여주며 파생 클래스에서 재정의한 함수의 호출을 보장된다.