时间:2021-04-16
1 隐藏基类的方法
当基类继承一个(非抽象的)成员时,也就继承了其实现代码。如果继承的成员是虚拟的,就可以用override关键字重写这段实现代码。无论继承的成员是否为虚拟,都可以隐藏这些代码。
使用下面的代码就可以隐藏:
public class MyBaseClass
{
public void DoSomething()
{
//Base implementation.
}
public class MyDerivedClass : MyClass
{
public void DoSomething()
{
//Derived class implementation, hide base implementation.
}
}
}
尽管这段代码可以正常运行,三十会产生一个警告,说明隐藏了一个基类成员。如果是无意间隐藏了一个需要使用的成员,此时就可以改正错误。如果确实要隐藏该成员,就可以使用new关键字显式的表明意图:
public class MyDerivedClass : MyBaseClass
{
new public void DoSomething()
{
//Derived class implementation,hide base implementation.
}
}
其工作方式是完全相同的,但是不会出现警告。此时应该注意隐藏基类成员和重写他们的区别。考虑下面的代码:
public class MyBaseClass
{
public vritual void DoSometing()
{
Console.WriteLine("Base imp");
}
}
public class MyDerivedClass : MyBaseClass
{
public override void DoSomething()
{
Console.WriteLine("Derived imp");
}
}
实现如下:
MyDerivedClass myObj = new MyDerivedClass();
MyBaseClass myBaseObj;
myBaseObj = myObj;
myBaseObj.DoSomething();
输出结果:
Derived imp
2 this关键字
与base关键字一样,this也可以用在类成员的内部,且该关键字也引用对象实例。只是this引用的是当前的对象实例(即不在静态成员中使用this关键字,因为静态成员不是对象实例的一部分)。
this关机那字最常用的功能就是把当前对象实例的引用传递给一个方法。
this关键字的另一个常见的用法就是限定本地类型的成员,例如:
public class MyClass
{
private int someData;
public int SomeData
{
get
{
return this.someData;
}
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
最近正在学习c#,对其中的方法重写和隐藏的概念很是模糊,现在将其归纳如下:1:方法重写:就是在基类中的方法用virtual关键字来标识,然后在继承类中对该类进行
在C#的继承中尝尝会用到相关的修饰词:override和new。这两个修饰符都可以在新的子类中,重写同名的父类方法。override:扩展或修改继承的方法、属性
密封类概述并不是所有的类都可以被继承,C#语言中就是密封类。在C#语言中我们可以把类声明为sealed。这表示不能继承该类,如果想要继承那么编译器肯定会报错。在
类成员的继承和重写成员继承:子类继承了父类除构造方法外的所有成员方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类中的方法,也称为重写代码如下classP
一、类的继承A类继承B类,是指A类可以拥有B类的非私有属性和方法,同时A类也可以自己定义属性方法或重写方法以扩充自己的功能。1.1方法的重写重写方法时,方法的方