Fre*_*els 43

没有; 重载是创建一个具有相同名称的方法,具有不同数量的参数,或者具有其他类型的参数.

多态性是关于改变各种类型的特定方法的实现/功能(它们都具有相同的"基类型").

重载:

public class TestClass
{
    public void DoSomething( int a, int b ) {}

    public void DoSomething( int a, int b, string x ) {}
}
Run Code Online (Sandbox Code Playgroud)

多态性:

public abstract class Base
{
    public abstract DoSomething();
}

public class A : Base
{
    public override DoSomething()
    {
         Console.WriteLine("I am A");
    }
}

public class B : Base
{
     public override DoSomething()
     {
         Console.WriteLine("I am B");
     }
}
Run Code Online (Sandbox Code Playgroud)

  • 不一定是界面.一个共同的基类就足够了. (2认同)
  • 它可以通过接口以及基类或抽象类来完成.关键是对象的具体类型无关紧要.为了使用基础,它只需要与基础无法区分; 无论基数是什么. (2认同)
  • 它可以是一个接口,它可以是一个抽象类,也可以是一个常规基类.但请注意,该方法必须是"虚拟"才能覆盖它. (2认同)

Ahm*_*hmy 10

多态和方法重载之间的区别在于确定实际执行方法的时间.原因是当方法过载时,例如:

account = new BankAccount();
account = new BankAccount(1000);
Run Code Online (Sandbox Code Playgroud)

编译器可以告诉方法签名使用哪个构造函数,包括提供的参数的数量和类型.在程序运行之前,在编译时使用的这种方法的选择称为早期绑定.另一方面,当我们使用多态方法调用(如x.getMeasure())时,调用的实际getMeasure()方法取决于x引用的对象类型.因为在程序运行之前不构造对象,所以在运行时确定调用的方法.因此,虚拟机,而不是编译器选择适当的方法.此方法选择称为后期绑定.


Dan*_*nas 5

没有.

多态性是一种编程语言特性,允许使用统一接口处理不同数据类型的值.参数多态的概念适用于数据类型和函数.可以评估或应用于不同类型的值的函数称为多态函数.可以看起来是通用类型的数据类型(例如,具有任意类型的元素的列表)被指定为多态数据类型,类似于进行这种特化的通用类型.

方法重载是各种编程语言中的一个特性,例如Ada,C#,C++,D和Java,它允许创建多个具有相同名称的方法,这些方法在输入类型和类型方面彼此不同.输出功能.

方法重载不应与类型多态或虚函数混淆.在那些中,在运行时选择正确的方法.

资料来源:维基百科.