pragma solidity ^0.4.18; contract A { uint public a = 0; function f() internal { a = a * 10 + 1; g(); } function g() internal { a = a * 10 + 2; } } contract B is A { function f() internal { a = a * 10 + 3; super.f(); } function g() internal { a = a * 10 + 4; super.g(); } } contract C is B { function fp() public { super.f(); // a = 3142 } function fpB() public { B.f(); // a = 3142 } function fpA() public { A.f(); // a = 142 } function reset() public { a = 0; } }
0.4.18