Source: https://w3.cs.jmu.edu/weikleda/cs149s18/wk-12/Act10-ClassesAndUML_Teacher.pdf