谁知道继承(子类能不能继承父类的私有成员)
1个回答
展开全部
子类到底能不能继承父类的私有成员,之前不是很清楚,曾以为是继承了但没有权限访问。今天做了个测试,证明了:没有继承。
看下代码: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();
测试出来的结果是:没有父类的私有字段。ok。
看下代码: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();
测试出来的结果是:没有父类的私有字段。ok。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询