Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

Overriding2

19. Objective-C 다형성(polymorphism) [다형성, 오버라이딩, 업캐스팅, 다운캐스팅] 다형성은 말 그대로 형태가 다양하다는 것이다. 프로그래밍에서 다형성은 주로 클래스간의 상속관계가 있을 때 나타난다. 메서드 오버라이딩(Method overriding)같은 이름의 메서드라도 어떤 타입으로 참조하고 있는지에 따라 내부 동작이 달라진다.좀 더 정확히는 서브클래스에서 슈퍼클래스의 메서드를 재정의 하는 것을 말한다.즉 어떤 객체를 부모타입으로 참조하느냐? 본인 타입으로 참조하느냐에 따라 호출되는 메서드가 다른 것이다. 메서드 디스패치 테이블(Method Dispatch Table)옵젝씨에서 메서드는 메서드 디스패치 테이블을 통해 관리된다.(내부적으로는 클래스의 메타 데이터 등이 저장되는 구조체로 되어 있다.)메서드는 런타임에 메서드 호출을 처리하는 .. 2024. 5. 22.
8. 상속, 오버라이딩, super 객체지향의 4대 특징(캡슐화, 상속, 추상화, 다형성) 중 상속에 대해 Araboza. 추상화 먼저 추상화는 '복잡한 것을 단순하게' 만드는 것을 말한다고 할 수 있다. 그 방법 중 하나는, 복잡한 객체들 사이에서 공통된 특징을 뽑아내는 것이다. 세상에는 많은 자동차들이 존재한다. 가솔린차, 전기차, 수소차 등... 근데 분명 자동차라면 응당 존재하는 속성이나 기능이 존재한다. 바퀴, 문, 핸들과 같은 속성이 있을 것이고 문 열기, 엑셀 밟기, 주유하기 등의 기능이 있을 것이다. 자동차들을 각각 클래스로 만드는 방법도 있겠지만, 공통된 부분을 뽑아서(추상화해서) '자동차'라는 클래스를 만든다면? 그리고 이 클래스를 상속한 세부적인 자동차들로 만들면 중복된 코드는 줄이고 더 효율적인 프로그래밍이 가능하다... 2024. 3. 11.