Does C# have the notion of private / protected inheritance, and if not, why?
C++
class Foo : private Bar { public: ... }; >
You can hide inherited APIs from being publicly visible by declaring that same member in your class as private, and using the new keyword. See Hiding through Inheritance from MSDN.