这个变量属于哪个类?

时间:2017-04-20 18:18:19

标签: c#

class Program
{
    class Mammal
    {

    }

    class Horse : Mammal
    {

    }

    static void Main()
    {
        Horse myHorse = new Horse();
        Mammal myMammal = myHorse;
        Horse myHorseAgain = myMammal as Horse;
    }
}

myHorseAgain会在Horse类中定义方法吗?

2 个答案:

答案 0 :(得分:0)

这里有两点。

1º:你施放的次数无关紧要。如果编译器设法再次将Mammal变成Horse,那么他将成为一匹马,所以他将拥有所有Horse的行为。

第二名:以这种方式堆叠演员绝对不是一个好习惯。

答案 1 :(得分:0)

是的,它会的。虽然它正在进行向上转换,但您会发现对于upcasted(Mammal)实例,以下条件仍然存在:

(myMammal is Horse) == true

但实际上这样做是一种反模式。转而使用interfaces来构建架构。