AccessibilityPropagator - mehdimo/janett GitHub Wiki

In Java, you can change accessibility while you override methods. For example, if a class has a method with protected accessibility, we can override it in an inherited class with public accessibility. C# doesn’t allow this change. So we should change base and inherited methods accessibility to highest one in hierarchy.

[Java]

public abstract class Software
{
    protected abstract void run();
}
public class Application extends Software
{
    public void run()
    {
    }
}
public class OS extends Software
{
    protected void run()
    {
    }
}

[C#]

public abstract class Software
{
    public abstract void run();
}
public class Application : Software
{
    public override void run()
    {
    }
}
public class OS : Software
{
    public override void run()
    {
    }
}