星空网 > 软件开发 > ASP.net

继承的本质的个人学习笔记

对继承的本质的一些理解,看了些文章和博客,总结成自己的文字加深一下理解,可能表达和理解的不是很透彻,请带着批判的眼光阅读~
先附上大神们的文章~

http://www.cnblogs.com/pbwf/archive/2008/03/27/1125451.html


new创建对象时,递归查找父类,分配内存,最先创建的应该是object。
对象是在运行时创建的,方法是在编译时创建,对象字段和方法的创建和调用遵循执行就近原则,因此子类会拷贝父类的方法和字段,父类的字段和方法在前,子类的新添加的方法和字段在后,调用按字段和方法存储的顺序调用,如果子类重写父类的方法,就会覆盖从父类拷贝的方法,如果用new定义同名方法,就会隐藏父类方法的实现,父类的方法还存在,排在子类同名方法前
调用的方法是子类还是父类的,和引用类型无关,只和创建的对象是子类还是父类对象有关(关注对象原则),同时声明引用类型的不同只会决定对方法的访问权限的不同,父类可以声明创建子类对象,是因为子类会继承拷贝父类的方法和字段,在子类中父类型的引用具有访问权限。而子类不可声明和创建父类对象是因为,父类中子类指针是不具有访问权限的。
父类型的引用只能调用子类中从父类拷贝的方法和字段,对子类新添加的方法和字段是无法调用的。子类型的引用调用的优先级按父类在前,子类的在后原则,如果子类使用new定义了同名方法,那么就会隐藏父类的方法,优先调用子类的方法


简单的助于理解的代码:
 public class Bird
    {
        private string type = "bird";
        public virtual string ShowType()
        {
            return "bird";
        }
    }

    public class Chicken : Bird
    {
        private new string type = "chicken";
        public string show()
        {
            return "chicken";
        }
        public override  string ShowType()
        {
            return "chicken";
        }
    }
调用代码如下:
            Bird bird = new Chicken();
            Chicken chicken = new Chicken();
            string str1 = bird.ShowType();
            string str2 = chicken.ShowType();
结果:str1-chicken str2-chicken

改一下子类的方法
 public class Chicken : Bird
    {
        private new string type = "chicken";
        public string show()
        {
            return "chicken";
        }
        public new string ShowType()
        {
            return "chicken";
        }
    }
结果:str1-bird str2-chicken 
虽然创建的都是chicken对象,但是bird是无法调用chicken中的show()方法的,chicken是可以的,这就是引用类型的访问权限的不同。




原标题:继承的本质的个人学习笔记

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

外贸独立站怎么做:https://www.goluckyvip.com/tag/42813.html
外贸发票:https://www.goluckyvip.com/tag/42814.html
外贸翻译:https://www.goluckyvip.com/tag/42815.html
外贸翻译常用工具:https://www.goluckyvip.com/tag/42816.html
外贸翻译工具:https://www.goluckyvip.com/tag/42817.html
外贸翻译软件:https://www.goluckyvip.com/tag/42818.html
云南抚仙湖旅游攻略更佳行程安排,景点攻略大全:https://www.vstour.cn/a/408242.html
珠海附近过年旅游景点 珠海附近过年旅游景点免费:https://www.vstour.cn/a/408243.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流