We can use can to talk about general ability.
- I can knit.
- I can sing.
- I can dance.
- I can play.
- I can run.
We do not usually use can to talk about future ability. Instead we use a structure with be able.
- I will be able to do it. (NOT I can be able to do it.)
- She should be able to come. (NOT She should can come.)
We can use could to talk about general ability that existed in the past. Be able to can also be used.
- She could read when she was three. OR She was able to read when she was three.
- He could run ten miles in an hour. OR He was able to run ten miles in an hour.
Could can be used in conditional sentences to mean ‘would be able to’.
- She could get a better job if she knew English. (= She would be able to get a better job if she knew English.)
Could have + past participle
We can use could have + past participle to talk about unrealized past ability.
- He was so angry he could have killed her.
This structure can also be used to criticize people for not doing things.
- You could have asked me before borrowing my car.