In this video, I demonstrate how to refactor a simple JavaFX application toward the appropriate use of interfaces and abstract classes. These are two Java structures that my students often report confusion about, and so I hope that this video helps to clarify how they work. Note that I am taking an emergent architecture approach, where I introduce these structures to solve refactoring problems---particularly DRY (don't repeat yourself) problems. This is opposed to a design up front approach, where one might define the interfaces and abstract classes before writing their implementations.
For more information on triage grading, see https://www.cs.bsu.edu/homepages/pvg/...