Precautions for interfaces (self-feeling): Try to define members variables as little as possible, generally only declare the method;
The role of the interface: realize multiple inheritance and polymorphism;
The role of the internal class: 1. Hide implementation.
2. Implement multiple inheritance of class C (compared to multiple inheritage of interfaces, internal categories can achieve multiple inherits of multiple abstract classes)