Lagi belajar OOP dan bingung bedanya abstract class sama interface di Java.

Dari yang saya baca:
- Abstract class bisa punya method dengan body
- Interface semua method harus abstract (tapi di Java 8+ bisa default method)

Tapi kapan sebaiknya pakai abstract class dan kapan pakai interface? Ada contoh real case-nya ga? Terutama di konteks project Laravel atau aplikasi web.