class Program
{
class Mammal
{
}
class Horse : Mammal
{
}
static void Main()
{
Horse myHorse = new Horse();
Mammal myMammal = myHorse;
Horse myHorseAgain = myMammal as Horse;
}
}
myHorseAgain
会在Horse类中定义方法吗?
答案 0 :(得分:0)
这里有两点。
1º:你施放的次数无关紧要。如果编译器设法再次将Mammal变成Horse,那么他将成为一匹马,所以他将拥有所有Horse的行为。
第二名:以这种方式堆叠演员绝对不是一个好习惯。
答案 1 :(得分:0)
是的,它会的。虽然它正在进行向上转换,但您会发现对于upcasted(Mammal
)实例,以下条件仍然存在:
(myMammal is Horse) == true
但实际上这样做是一种反模式。转而使用interfaces来构建架构。