I'm working on a java project for the university. The project is a card game in which you travel around a 2D map and fight against some enemies. My part consists of creating the deck and the cards.
I made the card interface, an abstract card and an implementation that extends the abstract card and implements the interface.
Now I also want an internal static builder in the abstract class and a related builder implementation in all classes that extend the abstract class (because if the new card has a new field I also want to add it in the builder). I have extended the builder in the implementation, but I don't know if it is correct to extend a static class.
The idea came to me from:
Effective Java, 3rd edition, Joshua Bloch, Item 2: Consider a builder when faced with many constructor parametersconstructor parameters
The question is: Is it correct to extends a static inner class?
Because what I would mainly like is to "force" all classes that extend the abstract class to have a builder, since the constructor has many parameters.