java为什么定义接口