final을 사용하는 이유: 추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제다. 실행되는 과정에서 한번 값이 정해진 이후에는 변수 내의 값이 바뀌지 않도록하는 규제다. 추상클래스를 사용하는 이유 : 부모클래스에 메소드의 시그니쳐만 정의해놓고 그 메소드의 실제 동작방법을 자식클래스에게 위임 -> 상속을 강제하기 위해 사용 인터페이스를 사용하는 이유: 어떤 객체가 있고 그 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야 한다. 인터페이스의 메소드를 강제하기 위해 사용. 상속과 인터페이스의 차이 : 상속은 상위클래스의 기능을 하위클래스가 물려받는것 인터페이스는 특정 메소드가 반드시 존재하도록 강제하는것. Ex) 협업자1의 Calculator 와 협..