oop의 문제점인데

자동차와 가방을 섞을수는 있어

그러니까 자동차의 이동 능력과

가방의 수송능력을 섞을 수 있지

그런데 그게 자동차와 가방 그 자체를 섞는게 아니라

이동능력과 수송능력, 즉 속성을 섞는거야

oop는 클래스를 모듈이자 타입이라고 말해

그런데 원래 모듈과 타입은 섞어쓰면 안돼

완전히 다른 개념이거든

모듈을 받으면 연관관계고

타입을 받으면 의존 관계야.

모듈을 받는걸 delegation이라고 하고

타입 받는걸 inheritance라고 해

oop 만들때 cs 이론적인 고찰 없이 막 만들어서

이 두 가지가 같은줄 알았던거야

그런데 쓰다보니 이상해

그래서 학자들이 oo의 이론을 정립하면서

oo가 개망가진 언어라는걸 알게된거야

결론적으로 속성은 섞어쓰는게 맞지만

타입은 섞어쓰려면 많은 고찰이 필요하다.

타입인지 아닌지 잘모르면 그냥 모듈방식으로 속성조합만 쓰면 돼

최소한 망가지지는 않는다.