I have found a reference architecture where all domain classes (POJOs) inherit an abstract class and, in turn, the abstract class implements a interface. For instance:
public interface User {  
    public abstract operation1();  
    public abstract operation2();  
    ...  
}  
public abstract class AbstractUser implements User {  
    String name;  
    // only attributes
    ...
}  
public abstract class XyzUser extends AbstractUser {
    ...
}  
Do you guys know if this design is some sort of pattern? Can you explain why the architecture was designed like that (Interface --> Abstract Class --> Concrete Class)?
 
     
     
     
     
     
     
    