private int xxx(int xx); private int xxx(string xx);算一个
多态就是同一个方法在不同的类中有不同的实现体.包括方法重载和覆盖,楼上的重载,偶给你个覆盖的class Draw { public vitual void draw() { Console.Write("我是画的基类...");} }class Circle:Draw { public override void draw() { Console.Write("我是画的子类...圆形");} }class Square:Draw { public override void draw() { Console.Write("我是画的子类...正方形形");} } Circle Square都是Draw的子类,三个类都有draw()方法,但是各自的实现内容却不一样,此为多态体现之一也.
楼上的都对, 也可以说方法具有相同的名称,而实现不同的行为。 说简单点 就像汽车分为公交汽车,四轮驱动车,小汽车等,就是车的多态性 // Define the base class class Car { public virtual void DescribeCar() { System.Console.WriteLine("Four wheels and an engine."); } }// Define the derived classes class ConvertibleCar : Car { public new virtual void DescribeCar() { base.DescribeCar(); System.Console.WriteLine("A roof that opens up."); } }class Minivan : Car { public override void DescribeCar() { base.DescribeCar(); System.Console.WriteLine("Carries seven people."); } }
private int xxx(string xx);算一个
{
public vitual void draw()
{
Console.Write("我是画的基类...");}
}class Circle:Draw
{
public override void draw()
{
Console.Write("我是画的子类...圆形");}
}class Square:Draw
{
public override void draw()
{
Console.Write("我是画的子类...正方形形");}
}
Circle Square都是Draw的子类,三个类都有draw()方法,但是各自的实现内容却不一样,此为多态体现之一也.
也可以说方法具有相同的名称,而实现不同的行为。
说简单点 就像汽车分为公交汽车,四轮驱动车,小汽车等,就是车的多态性
// Define the base class
class Car
{
public virtual void DescribeCar()
{
System.Console.WriteLine("Four wheels and an engine.");
}
}// Define the derived classes
class ConvertibleCar : Car
{
public new virtual void DescribeCar()
{
base.DescribeCar();
System.Console.WriteLine("A roof that opens up.");
}
}class Minivan : Car
{
public override void DescribeCar()
{
base.DescribeCar();
System.Console.WriteLine("Carries seven people.");
}
}
动态多态的体现 就是虚方法的Override,是在运行期间由运行时根据虚方法表动态计算出真正该执行方法的地址(不同的语言有不同的具体实现方式),所以动态的动态是会有一定的性能影响(不过对于现在的PC来讲,这个影响基本可忽略掉)多态性很重要吗?
可以说没有多态就没有面向对象,特别是运行时多态,为程序的扩展提供了切入点.
没有多态就没有框架设计,也就没有.net framework.
所有的设计模式也都是基于多态特性来实现.
override
和
overload
一种叫做重写,一种叫做重载
重写是一个方法的多个版本,重载是多个方法。
演员听到"cut"的时候会停止表演
医生听到"cut"的时候会在病人身上切道口子
和
overload
的区别是什么!!!
是允许将父对象设置成为和一个或多个它的子对象相等的技术,比如Parent:=Child; 多态性使得能够利用同一类(基类)类型的指针来引用不同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作.
多态,是面向对象的程序设计语言最核心的特征。多态,意味着一个对象有着多重特征,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。