7个回答
展开全部
通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。C# 中的每种类型都是多态的。类型可用作它们自己的类型或用作 Object 实例,因为任何类型都自动将 Object 当作基类型。
多态性不仅对派生类很重要,对基类也很重要。任何情况下,使用基类实际上都可能是在使用已强制转换为基类类型的派生类对象。基类的设计者可以预测到其基类中可能会在派生类中发生更改的方面。例如,表示汽车的基类可能包含这样的行为:当考虑的汽车为小型货车或敞篷汽车时,这些行为将会改变。基类可以将这些类成员标记为虚拟的,从而允许表示敞篷汽车和小型货车的派生类重写该行为。
简单的理解,就是可以将鸭子,鸡,鸟,猪都作为动物对象来看待,就可以直接命令 “动物.叫”,然后在鸭子中具体实现“叫=瓜瓜”,鸟中“叫=叽叽”这样,就是以动物为基类,实现了鸭子,鸡,鸟,猪等派生类的多态。
多态性不仅对派生类很重要,对基类也很重要。任何情况下,使用基类实际上都可能是在使用已强制转换为基类类型的派生类对象。基类的设计者可以预测到其基类中可能会在派生类中发生更改的方面。例如,表示汽车的基类可能包含这样的行为:当考虑的汽车为小型货车或敞篷汽车时,这些行为将会改变。基类可以将这些类成员标记为虚拟的,从而允许表示敞篷汽车和小型货车的派生类重写该行为。
简单的理解,就是可以将鸭子,鸡,鸟,猪都作为动物对象来看待,就可以直接命令 “动物.叫”,然后在鸭子中具体实现“叫=瓜瓜”,鸟中“叫=叽叽”这样,就是以动物为基类,实现了鸭子,鸡,鸟,猪等派生类的多态。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多态是所有语言都是一样的,C#和别的语言没有什么不同
主要是子类继承父类,并重写父类的方法,实现了不同的操作
比如:
public class 父类{
public abstract string m();
}
public class 子类1:父类{
public override string m(){
return "1";
}
}
public class 子类2:父类{
public override string m(){
return "2";
}
}
应用:
父类 a = new 子类1();
Console.Write(a.m());
a = new 子类2();
Console.Write(a.m());
上面都是调用a.m(),输出的结果却不一样,这就是多态了
主要是子类继承父类,并重写父类的方法,实现了不同的操作
比如:
public class 父类{
public abstract string m();
}
public class 子类1:父类{
public override string m(){
return "1";
}
}
public class 子类2:父类{
public override string m(){
return "2";
}
}
应用:
父类 a = new 子类1();
Console.Write(a.m());
a = new 子类2();
Console.Write(a.m());
上面都是调用a.m(),输出的结果却不一样,这就是多态了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java使用动态绑定来使多态成为可能,它指的是java用来在运行时选择调用的方法或对象的机制.重载构成了了java中的一种特殊的多态机制,它表现在当一个类的两个或者两个以上的方法拥有相同的名字但是不同的参数列表,或者说"方法签名".一个方法的签名指的是方法的名字以及参数的类型和数目.类的每一个方法都有与之相关的唯一的签名.类可以有多个名字相同的方法只要它们的参数列表是唯一的.例如,我们能够为animal类定义两个名字为gethello的方法,用其中一个方法来获得动物通常的叫声,而用另一个获得当动物被惊吓或是抚摩的时候的叫声
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一言以蔽之,即:父类引用可以指向子类实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询