www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - why have protection attributes on/in interfaces abstract classes/methods

why have protection attributes on/in interfaces and abstract 
classes/methods no effect outside a module?

module types;

private interface itest
{
   private static void blub();
   public void blub2();
   private void blub3();
}

private class test
{
   protected abstract void blub4();
   public abstract void blub5();
}

---

module classes;

import types;

class A: itest
{
   public static void blub(){}
   public void blub2(){}
   public void blub3(){}
}

class B: test
{
   protected override void blub4(){}
   public override void blub5(){}
}

class C: test
{
   public override void blub4(){}
   public override void blub5(){}
}

why is it allowed to use them in interface and abstract - and even check 
if there are no redundency like "private private" or something
Feb 03 2012