| 12345678910111213141516171819202122232425262728293031323334 |
- 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.
|