在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
隐藏基类的方法 当从基类继承一个(非抽象)成员时,也就继承了其实现的代码,如果继承的成员是虚拟的,就可以用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关键词的情况下,如果使用的是基类对象,调用的还是基类的方法,子类对象调用的是子类方法 从图中可以看出实例化子类的时候都是先实例化基类 ,然后才执行子类的构造函数,最后是验证了上面两种隐藏方式的的区别。 调用重写或隐藏的基类方法 无论是重写成员还是隐藏成员,都可以在派生类内部访问基类成员,这在许多情况下是很有用的, 例如:
为此可以使用Base关键词,它表示在派生类中的基类的实现代码
嵌套的类型定义 除了在名称空间中定义类以外还可以在其他类中定义这些类 public class MyClass { public class MyNestedClass { } } 使用方法: CSharpRumenJD.MyClass.MyNestedClass mynestedclass = new MyClass.MyNestedClass();
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论