I’ve thought about doing this at work. Schedule an hour of programming once a day or once a week where others are free to join and watch, and comment or otherwise engage, or not.
Depends on how you use it, but in Java I prefer to use interfaces and no subclassing. I find classes with abstract methods hard to reason about, and much prefer to leverage Functions/lambdas where possible.