can と be able to の両者は、中学では「~できる」という意味で、それぞれ置き換えのできる言葉として勉強してきました。
現在のことや一般的な能力を示す言葉としてその違いはありませんが、未来や過去については少し使い方や意味が異なってくる場合があるので注意が必要です。
◆現在のことや通常の能力を表す場合は be able to よりも can がよく使われます。
Superman can fly faster than light, can't he?
「スーパーマンは光より速く飛べるのですよね。」
※ Superman is able to fly... でも意味は同じですが、can を使う人の方が多いでしょうし、普通です。この場合は
be able to は can よりもフォーマルな感じがあります。
◆未来において取得できる能力については be able to を使います。
I think your one-year daughter will be able to speak in a few more months.
「君の1歳の娘はあと数ヶ月で話ができるようになると思うよ。」
もちろん will can とはできないので、こういう場合は当然に will be able to としか言えません。
ただし、一般的な事実においては、次のように can を使うことも可能です。
Babies can start speaking as early as 7 or 8 months.
「赤ちゃんは7,8か月くらいで話し始めることができます。」
◆過去の特別な状況(そのとき限りのもの)においては be able to を使います。
Mr. Johnson was able to stop hiccups just before his presentation.
「ジョンソンさんはプレゼンテーションの直前にしゃっくりを止めることができた。」
しゃっくりを止めるのは普通の能力でも何でもないので、could を使うと違和感が出てきます。
hiccups しゃっくり
◆通常の能力においては、過去の事であっても could を使うことができます。
Susie was so sociable that she could get along with anybody during her stay in Japan.
「スージーは人付き合いが良かったので、日本にいる間、誰とでもうまく付き合うことができた。」
※この場合には ... she was able to get ... とすることも可能だということです。
◆過去の否定においては、特別な状況や通常の能力を表現する場合でも couldn't を使うことができます。
I couldn't comfort the little girl who had lost his parents by the disaster.
「その災害で両親を失った幼い女の子を慰めることはできなかった。」
comfort なぐさめる