类的赋值

posted at 2017.5.22 01:04 by 风信子

可以将一种类型的对象赋给层次结构中较高位置的一个类变量。例如:

Class Mammal

{public void Bteathe();}

Class Horse : Mammal

{ public void Trot();}

Class Whale:Mammal

{public void Swim();}

Horse myHorse = new Horse(“Neddy”);

Mammal myMammal = myHorse;

但要注意,这样做有一个重大的限制:

Horse myHorse = new Horse(“Neddy”);

Mammal myMammal = myHorse;

myMammal.Breathe();         //这个调用是合法的,BreatheMammal类的一部分

myMammal.Trot();            //这个调用是非法的,Trot不是Mammal类的一部分。

但是,反方向的转换是不允许的。例如:

Mammal myMammal = myMammal(“Mammalia”);

Horse myHorse = myMammal;    //错误

除非先进行检查,这个检查使用asis操作符,或者通过一次强制类型转换来进行。例如:

Horse myHore = new Horse(“Neddy”);

Mammal myMammal = myHorse;

Horse myHorseAgain = myMammal as Horse;    //OK –myMammal确实是一个Horse

..

Whale myWhale = new Whale(“Moby Dick”);

myMammal = myWhale;

..

myHorseAgain = myMammal as Horse;    //会返回null –myMammal不是Horse而是Whale

Tags:

IT技术

添加评论

  Country flag

biuquote
  • 评论
  • 在线预览
Loading