使用泛型，并解决泛型继承之后不能new的问题
忘记这个了。