1
2
3
4
5
6
7

多态

发布时间:2018-12-15 16:01   发布人:焦卫峰   浏览次数:502

1.成员隐藏

如果签名相同的方法在基类和派生类中都进行了声明,但该方法没有声明为virtual 和 override,派生类的方法就会隐藏基类的方法。一般要求在派生类相同签名的方法上加上new关键字。

访问修饰符 new 类型 成员名

new 访问修饰符 类型 成员名

2.虚拟方法与方法重写

如果父类中的方法使用virtual关键字修饰,子类中的同名方法使用override修饰,那么该方法就构成了方法的重写。

public virtual 方法名称(参数列表){方法体;}       //基类

public override 方法名称(参数列表){方法体;}     //派生类

不管是方法隐藏还是方法重写,父类对象调用的是父类的方法,而子类对象调用的是子类的方法。

3.多态性

一个基类的引用,可以指向多个派生类对象,具有多种不同的形态,这种现象叫做多态性。

多态性允许你将父对象设置成为一个或更多的它的子对象,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

class B:A{

          ……

}

A a = new A();

A b = new B();

 

static void test(A a);

A a=new A();

B b=new B();

test(b);