24b0d121e0c176b660b8f68b12d21a1d29fc5385

상속이니 캡슐화니 그런건 cpp 자바의 특징이지 oop의 특징이 아니다. 쓸데없는 용어 혼란 전술에 넘어가지 말고 oop는 그냥 코드를 추상화하는 하나의 패러다임이다. 객체란 데이터와 행위(함수, 메소드 뭐 그런거) 묶어서 새트로 다루는 것이다. 이게 무슨 추상화냐 하면 스타크래프트를 생각해보자. 마린은 체력 40 공격력 6 공속 얼마 이속 얼마 생산가격 미네랄 50 생산속도 몇초 현재 위치 스팀팩 적용 여부 등이 마린에 포함될 데이터다. 액션은 이동 공격 데미지 받기 죽을 때 흐아아앙 비명지르기 같은 것들이 있을 것이다. 이런식으로 코딩을 하는 것이 객체지향이며 여기서 생산속도 가격 같은건 모든 유닛이 다 공통으로 가지면 좋겠지. 그걸 상속으로 처리하는건 문란한 자바충 cpp충이나 할 법한 저능한 생각이고 진짜 고수는 러스트처럼 컴포지션으로 구현한다

- dc official App