I would have students study the source code for the
Java standard library first. The java.io package teaches a lot about the use of interfaces and abstract classes.
Best of all, you already have a copy in src.zip and any serious student should have it unzipped on a hard drive where it can be used to answer questions not covered in the JavaDocs.
For more advanced topics such as code management I would look into the various Apache Software Foundation projects.
Bill