foreach 는 번호를 신경 쓰지 않는다
처음부터 끝까지 하나씩 꺼내 줍니다. 인덱스가 필요 없는 반복에서 실수할 자리가 사라집니다.
T 는 여기에 타입이 들어온다는 빈칸이다
object 로 다 받으면 타입 검사가 사라지고 박싱이 일어납니다. 제네릭은 타입을 나중에 정하면서 둘 다 막습니다.
무엇인가면 추상 클래스, 무엇을 할 수 있으면 인터페이스
하나는 공통 코드를 물려주면서 빈칸을 남기고, 하나는 지켜야 할 목록만 적습니다. 문장으로 읽어 보면 답이 나옵니다.
같은 호출인데 객체마다 다르게 동작한다
부모 타입으로 불러도 그 객체가 갈아 끼운 메서드가 실행됩니다. 새 자식을 추가해도 부르는 쪽은 안 고칩니다.
상속은 물려받아 덧붙이는 것이다
겹치는 부분을 부모에 두고 다른 것만 자식에 적습니다. 자식을 부모로 보는 것은 언제나 안전합니다.