contract A { function f() virtual internal {} } contract B is A { function f() virtual override internal {} function h() pure internal { f; } } contract C is B { function f() override internal {} function i() pure internal { f; } } // ----