• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#类成员备忘

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  • 隐藏基类的方法
  • 调用重写或隐藏的基类方法
  • 嵌套的类型定义

 

隐藏基类的方法

当从基类继承一个(非抽象)成员时,也就继承了其实现的代码,如果继承的成员是虚拟的,就可以用Overrid重写这段实现代码,

无论继承的成员是否为虚拟的,都可以隐藏这些实现代码,这在继承的公共成员不像预期的那样工作时,是很有用的,

隐藏1:使用New关键词

    public class MybaseClass
    {
        public void DoSomething()
        {
            Console.WriteLine("MybaseClassDoSomething");
        }
    }
    public class MyDrivedClass : MybaseClass
    {
        new public void DoSomething()
        {
            Console.WriteLine("MyDrivedClassDoSomething");
        }
       
    }

隐藏2:使用重写方法

    public class MybaseClass
    {
     
        public virtual void DoSomething1()
        {
            Console.WriteLine("MybaseClassDoSomething1");
        }
    }
    public class MyDrivedClass : MybaseClass
    {
        public override void DoSomething1()
        {
            Console.WriteLine("MyDrivedClassDoSomething1");
        }
    }

使用时需要注意这两种方法的区别:

重写的情况下,无论是使用基类的对象还是子类的对象 调用的都是重写后的方法,

New关键词的情况下,如果使用的是基类对象,调用的还是基类的方法,子类对象调用的是子类方法

从图中可以看出实例化子类的时候都是先实例化基类 ,然后才执行子类的构造函数,最后是验证了上面两种隐藏方式的的区别。

调用重写或隐藏的基类方法

无论是重写成员还是隐藏成员,都可以在派生类内部访问基类成员,这在许多情况下是很有用的,

例如:

  1. 要对派生类的用户隐藏继承的公共成员,但仍能在类中访问其功能
  2. 要给继承的虚拟成员添加实现代码,而不是简单的使用重写的新代码替换它

 为此可以使用Base关键词,它表示在派生类中的基类的实现代码

 

嵌套的类型定义

除了在名称空间中定义类以外还可以在其他类中定义这些类

    public class MyClass
    {
        public class MyNestedClass
        {

        }
    }

 使用方法:

  CSharpRumenJD.MyClass.MyNestedClass mynestedclass = new MyClass.MyNestedClass();

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
VSCode编译支持C++11问题发布时间:2022-07-14
下一篇:
C#override关键字的使用发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap