What I Learned
following contents are covering the $2^{nd}$ week of $2^{nd}$ mission.
Class, Object and Instance
Class
코코아때의 노트를 보니 '상태와 행동을 가진 어떤 것'이라고 정리를 해두었다.
- 객체를 위한 설계도이며 상태(변수)와 행동(메소드)의 집합.
- 사용자 정의 데이터 타입
- 객체의 구조와 행동을 정의해주는 역할을 가지고 있다.
Object
- 클래스를 통해 실체(인스턴스)가 생성되었을 때 객체라고 부른다.
- 클래스, 인스턴스의 구분없이 포괄적으로 객체라는 말을 사용하기도 한다(생활코딩) (이 부분이 너무 헷갈린다..)
Instance
- 클래스(설계도)를 통해 만들어진 하나의 특정한 객체.
- 인스턴스가 클래스를 통해 생성된 하나를 일컫는 말이라고 하면 오브젝트는 인스턴스를 통합적으로 일컫는 말이라고도 한다.(이 부분도 헷갈린다)
Inheritance and Polymorphism
Inheritance
- 상속은 말 그대로 물려준다는 뜻.
- 상위/부모 클래스와 그를 상속받는 하위/자식 클래스로 나뉜다.
- 상위클래스를 상속받은 하위클래스는 상위클래스의 변수와 메소드를 쓸 수 있고 오버라이딩도 할 수 있고 이로써 중복을 피할 수 있다. 만약 상위클래스가 개선되면 하위클래스는 개선된 상위클래스를 그대로 물려받아 유지보수에도 유리하다.