継承(子クラスは親クラスのプライベートメンバーを継承できません)
1390 ワード
子クラスが親クラスのプライベートメンバーを継承できるかどうかは、これまでよく分からなかったが、継承したと思っていたがアクセスできなかった.今日テストをして、継承していないことを証明しました.
コードを見てください.
テストの結果、親のプライベートフィールドはありません.ok.
転載先:https://www.cnblogs.com/huaizuo/archive/2011/12/08/2280706.html
コードを見てください.
namespace
{
class A
{
private string aa = "dfdf";
private string print()
{
return "****";
}
public string AA
{
get { return aa; }
}
}
class B : A
{
private int a = 1;
public void test()
{
//Type type = typeof(A);
//MethodInfo methodInfo = type.GetMethod("print", BindingFlags.NonPublic | BindingFlags.Instance);
//A testA = (A)Activator.CreateInstance(type, false);
//string str = (string)methodInfo.Invoke(testA, null);
//Console.WriteLine(str);
Type type2 = typeof(B);
MemberInfo[] memberInfo = type2.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField);
foreach (MemberInfo mi in memberInfo)
{
Console.WriteLine(mi.Name);
}
}
class Program
{
static void Main(string[] args)
{
B b = new B();
b.test();
}
}
}
}
テストの結果、親のプライベートフィールドはありません.ok.
転載先:https://www.cnblogs.com/huaizuo/archive/2011/12/08/2280706.html