Last active
April 8, 2020 18:37
-
-
Save zhenyuan0502/698245e67fa93e43a9b7e0579624d1ba to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static class SealMethod | |
{ | |
public static void MainFunc() | |
{ | |
MiddleClass a = new MiddleClass(); | |
a.SomeWeirdFunction(); | |
Bottom b = new Bottom(); | |
b.SomeWeirdFunction(); | |
} | |
} | |
public class TopClass | |
{ | |
private string ThisIsOnlyAccessibleForTopClass { get; set; } | |
private string ThisIsOnlyAccessibleForTopClassAndMiddleClass { get; set; } | |
protected virtual string OnlyMiddleClass() | |
{ | |
return ThisIsOnlyAccessibleForTopClassAndMiddleClass = "As this is a MiddleClass class, I am accessible here.. That is good!"; | |
} | |
public virtual void SomeWeirdFunction() | |
{ | |
ThisIsOnlyAccessibleForTopClass = "I can access this here as it is grand father's private member!"; | |
} | |
} | |
public class MiddleClass : TopClass | |
{ | |
public override void SomeWeirdFunction() | |
{ | |
Console.WriteLine(base.OnlyMiddleClass()); // As this is a MiddleClass class, I am accessible here.. That is good! | |
Console.WriteLine(OnlyMiddleClass()); // Prohibited | |
} | |
protected override sealed string OnlyMiddleClass() => "Prohibited"; | |
} | |
public class Bottom : MiddleClass | |
{ | |
public override void SomeWeirdFunction() | |
{ | |
Console.WriteLine(base.OnlyMiddleClass()); // Prohibited | |
Console.WriteLine(OnlyMiddleClass()); // Prohibited | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment