zoukankan      html  css  js  c++  java
  • 继承(子类能不能继承父类的私有成员)

    子类到底能不能继承父类的私有成员,之前不是很清楚,曾以为是继承了但没有权限访问。今天做了个测试,证明了:没有继承。

    看下代码:

    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。

  • 相关阅读:
    226_翻转二叉树
    199_二叉树的右视图
    145_二叉树的后序遍历
    做IT,网络/系统/数据库/软件开发都得懂
    [恢]hdu 1200
    [恢]hdu 2080
    [恢]hdu 1222
    [恢]hdu 1128
    [恢]hdu 2153
    [恢]hdu 2132
  • 原文地址:https://www.cnblogs.com/huaizuo/p/2280706.html
Copyright © 2011-2022 走看看