Both define abstract types that can't be instantiated directly and are meant to be implemented/extended — but they serve different design purposes. The key distinctions are multiple inheritance, state, and the relationship they model.
Interface — a contract ("can-do" / capability)
{
;
{
System.out.println();
}
;
}
{
{ }
}
