have been doing 强调的是过程
have done 强调的是状态
比如说:He has been teaching.
He has taught .
这两句翻译起来 是不一样的。
前句是:他一直在教书。
后句得说成:他教书了。