是否可以在两个不同的类中进行重载

时间:2013-01-06 11:47:34

标签: c# asp.net oop loops overloading

我的一些朋友正在争论OOP的基本概念,是否可以在两个不同的类中进行重载?

据我所知,重载只能在同一个类中完成,但是当涉及到不同的类时,它被称为重写,这是两个类之间的主要区别。

我的理解准确吗?

2 个答案:

答案 0 :(得分:3)

重载意味着有多个具有相同名称的方法。

如果重载之间存在继承关系,则重载可能位于不同的类上。

覆盖意味着一个类有一个父类,并且具有相同签名的方法作为基类,它明确地想要使用代替中的父类类。 C#使用override关键字来表示这一点。

public class Base
{
  protected virtual void CanBeOverridden() {}

  public void ToOverload() {}

  // An overload of ToOverload in the Base class
  public void ToOverload(int param) {}
}

public class Child : Base
{
  // override
  protected override void CanBeOverridden() {}

  // An extra overload of ToOverload in the child class
  public void ToOverload(string param) {}
}

答案 1 :(得分:1)

可以在不同的类中进行重载:

class Class1
{
    public void Function1(string param1);
}

class Class2 : Class1
{
    public void Function1(string param1, string param2);
}

然后你有2个function1

选项