if we declare A B C as inner classes then we can access the others methods no matter we declare those method are private or not. So in the requirement 4th ask that in C class' method 2 it have to call super.method1() then we have an ambiguity because it can call method1 from class A and B