MODULE TClassInherit; (* Single inheritance: a child class inherits its parent's fields and methods; child method bodies see both (n from Base, m from Sub). Exit 7. *) VAR ExitCode : INTEGER; TYPE CLASS Base; n : INTEGER; PROCEDURE SetN(v : INTEGER); PROCEDURE GetN() : INTEGER; END Base; CLASS Sub (Base); m : INTEGER; PROCEDURE SetM(v : INTEGER); PROCEDURE Sum() : INTEGER; END Sub; CLASS IMPLEMENTATION Base; PROCEDURE SetN(v : INTEGER); BEGIN n := v END SetN; PROCEDURE GetN() : INTEGER; BEGIN RETURN n END GetN; END Base; CLASS IMPLEMENTATION Sub; PROCEDURE SetM(v : INTEGER); BEGIN m := v END SetM; PROCEDURE Sum() : INTEGER; BEGIN RETURN n + m END Sum; END Sub; VAR s : Sub; BEGIN s.SetN(3); (* inherited method *) s.SetM(4); (* own method, sets inherited+own fields *) ExitCode := s.Sum() END TClassInherit.