Interface
default or static keywordAbstract classes
classes used solely for inheritance, cannot be instantiated directly
Abstract method
method w/o implementation in class / interface where defined
When to use interface vs. abstract class
if you need instance variables to inherit, you should use an abstract class; interfaces define something your abstract class can do (behaviors/methods), abstract classes define what classes are; interfaces are intentionally restrictive, so you use them to only inherit method or group of related methods