java为什么要定义接口