2. Default Methods
Why do we need default methods ?
Usage
Abstract Classes vs Interface with default methods
3. Why do we need default methods ?
Public void apply()
Public void apply(){}
Public void apply(){}
Public void apply(){}
Interface-v0
Class
Class
Class
Public void apply()
Public void execute()
Public void apply(){}
Public void execute(){}
Public void apply(){}
Public void execute(){}
Public void apply(){}
Public void execute(){}
Interface-v1
Class
Class
Class
5. Resolution Rules
Classes always win
Default void apply(){}
void apply(){}
Interface A
Class B implements A
New c().apply()
6. Resolution Rules
sub-interfaces wins
Default void apply(){}
Interface A
Class C implements B
Default void apply(){}
Interface B extends ANew c().apply()