1
JavaBeginner#oop#polymorphism
Abstract class can have both abstract and concrete methods, instance variables, and constructors; a class can extend only one. Interface (Java 8+) can have default and static methods but no constructors; a class can implement multiple interfaces. Use interface for capability contracts, abstract class for shared base behavior.
interface Flyable { void fly(); default void land(){ System.out.println("landing"); } }
abstract class Vehicle { abstract void move(); Vehicle(){ /* constructor allowed */ } }
class Plane extends Vehicle implements Flyable { void move(){} public void fly(){} }