"super" in super.over only "points up" one class. Since the current class is Gamma that means that super.over means Beta's over - 2.
As for why b.over and a.over are 2 and 1 respectively (in case you don't know): fields (and static methods) are not subject to the rules of
polymorphism; the reference type (Beta and Alpha respectively) determine what field (or static method) to use.