//TIP 2:This class is NOT in same class 'Base' but in the same assembly so only protected is NOT accessible rest all are accessible. public void fn_Base_Sibling() { PublicBase.fn_PublicBase(); //PrivateBase.fn_PrivateBase(); //ERROR:Accesibility of 'protected' ProtectedBase.fn_ProtectedBase(); //protected is accessible because Base_Sibling inherit class 'Base'. you can not access it via Base.ProtectedBase InternalBase.fn_InternalBase(); ProInternalBase.fn_ProInternalBase(); }
public static void fn_PublicDerived() { PublicBase.fn_PublicBase(); //YES, becuase this is 'public' //PrivateBase.fn_PrivateBase(); //No, becuase this is 'private' ProtectedBase.fn_ProtectedBase(); //YES, becuase this is 'protected' //InternalBase.fn_InternalBase(); //No, becuase this is 'internal' ProInternalBase.fn_ProInternalBase(); //YES, becuase this is 'protected internal' }
public static void fn_Base_Inside() { //All methods are easily accessible.Does not consider a modified indeed. PublicBase.fn_PublicBase(); PrivateBase.fn_PrivateBase(); ProtectedBase.fn_ProtectedBase(); InternalBase.fn_InternalBase(); ProInternalBase.fn_ProInternalBase(); }