java为什么要有接口