java什么时候用抽象类