MyException - 我的异常网
当前位置:我的异常网» C# » 子类是否继承父类的私有成员呢,该如何处理

子类是否继承父类的私有成员呢,该如何处理

www.MyException.Cn  网友分享于:2014-08-07  浏览:0次
子类是否继承父类的私有成员呢
子类是否继承了父类的私有成员,怎么才算是继承了,怎么算没有继承?

比如:父类Parent有个私有成员,有个受保护的方法,在该方法中打印出这个私有成员。

然后子类 Child继承Parent,如果在其他类,比如包含主函数的类中,实例化Child,这时这个实例化对象 无法调用Parent的受保护的方法。


    class Parent
    {
        private string privateName;
        public string publicName; 
        //这个方法的访问修饰符改为public的话,可以在其他类中由子类调用该方法,但是也会报错
        protected void GetName(string nameFromOut)
        {
            privateName = nameFromOut;
            Console.WriteLine(privateName);
        }
    }

    class Child : Parent
    {
    }



    class Program
    {
        public static void Main(string[] args)
        {
            Child c = new Child();
            //这里无法调用其父类的受保护的方法
            Console.ReadKey();
        }
    }


而如果在 子类内部实例化一个 子类的对象,再由这个对象 调用父类的方法,则是可以访问的父类的私有成员,如:

    class Child : Parent
    {
        public void GetParentPrivateName()
        {
            Child c = new Child();
            c.GetName("Tom");
            publicName = "Jerry";
            Console.WriteLine(publicName);
        }  
    }

难道好比 父亲有2W大洋的私房钱,儿子是无权动用的,但是儿子可以趁老子不在家的时候 拿来花?
------解决方案--------------------
不要把继承想的太复杂了,原则很简单:private只能类自己访问,protected类和子类能访问,public谁都可以访问。还有问题吗
------解决方案--------------------
这样理解 父亲有2W大洋的私房钱,他授权儿子能用,别人不能用,就用 protected 修饰这笔钱,如果外人也能用,就 public 修饰,如果只有自己能用,其他人都不行,就 private 修饰了。
------解决方案--------------------
而在 public static void Main(string[] args) 里去调用就等于外人问儿子要那笔钱,当然不能给他
------解决方案--------------------
继承的!
首先明确的说明,子类继承父类所有的属性和方法,包括私有的,只是在子类中不能被访问而已。

------解决方案--------------------
引用:
继承的!
首先明确的说明,子类继承父类所有的属性和方法,包括私有的,只是在子类中不能被访问而已。

乔巴说的非常有道理,lz可以测试一下这个例子

    class Father
    {
        public string A;
        private string _B;

        public void FatherFunction(Child child)
        {
            string s = child._B;
        }
    }

    class Child : Father
    { 
        
    }

这个例子充分说明了父类的所有成员都是可以被子类继承的,至于能不能用则要看使用的“场合”,在父类的范围中,什么都看得到。在子类里面就只能看到protected和public修饰的成员了
------解决方案--------------------
引用:
继承的!
首先明确的说明,子类继承父类所有的属性和方法,包括私有的,只是在子类中不能被访问而已。


确定是被继承的,撸主可以用IL工具查看一下。

文章评论

我的丈夫是个程序员
我的丈夫是个程序员
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
10个调试和排错的小建议
10个调试和排错的小建议
如何成为一名黑客
如何成为一名黑客
老程序员的下场
老程序员的下场
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
总结2014中国互联网十大段子
总结2014中国互联网十大段子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员的鄙视链
程序员的鄙视链
鲜为人知的编程真相
鲜为人知的编程真相
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序员必看的十大电影
程序员必看的十大电影
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
漫画:程序员的工作
漫画:程序员的工作
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
我是如何打败拖延症的
我是如何打败拖延症的
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员和编码员之间的区别
程序员和编码员之间的区别
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
一个程序员的时间管理
一个程序员的时间管理
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
编程语言是女人
编程语言是女人
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
每天工作4小时的程序员
每天工作4小时的程序员
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
那些争议最大的编程观点
那些争议最大的编程观点
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
旅行,写作,编程
旅行,写作,编程
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
为什么程序员都是夜猫子
为什么程序员都是夜猫子
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
程序员都该阅读的书
程序员都该阅读的书
 程序员的样子
程序员的样子
代码女神横空出世
代码女神横空出世
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有