pragma solidity ^0.4.18; contract A { uint public a = 0; function f() public { a = a * 10 + 1; } } contract B is A { function f() public { a = a * 10 + 2; super.f(); } } contract C is A { function f() public { a = a * 10 + 3; super.f(); } } contract D is B, C {} // call D.f(), and a becomes 321
0.4.18