Govt Exams
Interfaces cannot be instantiated directly. Since Java 8, interfaces can have static and default methods, and since Java 9, they can have private methods.
The super() keyword is used to call the parent class constructor. It must be the first statement in the child class constructor.
An abstract class can have zero or more abstract methods. It can also have concrete methods, constructors, and instance variables.
A final method cannot be overridden. Attempting to override it results in a compilation error: 'cannot override final method'.
Method overloading requires different parameter types or number of parameters. Options A and D have different return types (not valid for overloading), and option B has the same signature with different parameter names (not overloading).
Interfaces cannot be instantiated directly. You can only create objects of classes that implement interfaces.
The 'final' keyword prevents a class from being extended. For example: final class MyClass {} cannot be subclassed.
If no access modifier is specified for a class member, it has package-private (default) access, meaning it's accessible only within the same package.
All members in an interface are implicitly public. Variables are public static final, and methods are public abstract (unless default or static).
Deep inheritance hierarchies are considered a code smell. They suggest that composition might have been a better approach, leading to tighter coupling and reduced flexibility.