星期六 十一月 28, 2009 00:35

cSharp继承的学习笔记-PartOne

Posted by 邵 明博

在昨天的笔记中提到“结构本身不支持继承”,实际上有些武断。结构不能建立类型层次,但结构可以实现接口。

c# 的隐藏方法,这一块一直都觉得挺晦涩难懂。实际上,是没有理解出,它和虚函数之间的关系。下面以一个例子说明:

        static void Main(string[] args)
        {

            testClass t = new testClass2();
            t.myMethod();
            t.my();
        }

        class testClass
        {
            public void myMethod()
            {
                Console.WriteLine("In base method");
            }

            public virtual void my()
            {
                Console.WriteLine("Virtual in base");
            }

        }

        class testClass2 : testClass
        {
            public new void myMethod()
            {
                Console.WriteLine("In child method");
            }

            public override void my()
            {
                Console.WriteLine("override in derived");
            }
        }
  • 有没有new 这个显式的声明隐藏方法的形式,不是必须的。如果没有,则编译器会还会警告你,它会默认的按照隐藏基类的方法执行。
  • 从编译结果看来,隐藏函数和虚函数的区别是,override 虚函数后,用基类引用子类的实例并调用该函数,会显示其多态性。但,隐藏函数则会直接显示其基类中的相关函数。

————以下与笔记无关————

最近这两天的效率实在是低。昨天是相当于一整天只更新了一篇关于《对象和类》的日志,而今天只看了继承这一章的1/6 的内容。持续的低迷,精神状态是一方面的原因——午睡的时间给耽误了,加上早先的几天的熬夜,显得这几天看书效率低了好几个档次。另外,今天下午还是铁着心,跑出去买了一个PNY 的浪漫紫罗双子盘+一个昂达的方块糖P3 ,很心疼的说。提起U盘,那真是一头包的,月头才买不久的Sandisk 就神不知鬼不觉的不见了;提起这次买的P3,让我想起04 年那会,昂达刚出第一款vx505 时,我就买了。

1 Response to cSharp继承的学习笔记-PartOne

Avatar

cSharp继承的学习笔记-PartTwo | 邵明博的个人博客

十一月 28th, 2009 at 3:07 下午

[...] 本文承接于《cSharp继承的学习笔记-PartOne》,主要谈谈继承这一章节关于密封和接口中我认为重要的知识。 [...]

Comment Form

calendar

2009年十一月
« 十   十二 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

最近评论