接口和Java中的抽象类有什么区别?