다형적인 팩토리 메서드 패턴 1

이전에 분무기 만들 때에도 매개변수로 enum 여러 개를 받았었음
- 모델링 8: 다시 사용성 높이기 참고
- 나쁜 방식은 아니지만 아쉬움

매개변수로 처리하기보다 다형성을 이용하는게 OO적인 사고방식

createOrNull() 정적 메서드는 다형적으로 구현할 수 없음
- 사실 전역함수를 클래스 내부에 감싸놓은게 전부니까

createOrNull() 정적 메서드가 Cup 클래스에서 빠짐
Menu 추상 클래스를 새로 만듦
- 이를 상속해서
createCupOrNull()추상 메서드를 각 나라 클래스에 맞게 오버라이딩 Cup클래스의 생성자는 패키지 접근 제어자라서 같은 패키지에 있는Menu추상 클래스에서만 호출 가능하도록 구현

- 참고로
Menu클래스를 인터페이스가 아닌 추상 클래스로 만든 이유는, 나중에 상태를 나타내는 멤버 변수가 추가될 가능성이 높기 때문 - 가상 생성자:
- 추상(가상)인데 각 자식 클래스에서 이를 오버라이딩해서 각 자식 클래스를 생성하는 생성자를 구현
