Inheritance in Java represents an 'is-a' relationship - a subclass 'is a' type of its superclass. Has-a relationships represent composition and are typically implemented using instance variables (e.g., a Car 'has an' Engine). Interfaces are not required for has-a relationships - you use composition directly with instance variables. Options A and D are both correct statements.