我的一些朋友正在互相爭論OOP的基本概念,是否可能在兩個不同的類中重載?在兩個不同的類中可能會超載
據我所知,重載只能在同一個類中完成,但是當涉及到不同的類時,它被稱爲覆蓋,這是它們兩個之間的主要區別。
我的理解是否準確?
我的一些朋友正在互相爭論OOP的基本概念,是否可能在兩個不同的類中重載?在兩個不同的類中可能會超載
據我所知,重載只能在同一個類中完成,但是當涉及到不同的類時,它被稱爲覆蓋,這是它們兩個之間的主要區別。
我的理解是否準確?
重載意味着具有多個名稱相同的方法。
如果重載在它們之間有繼承關係,那麼重載就有可能在不同的類中。
重載意味着一個類有一個父類,並具有與相同簽名,它明確希望使用代替的那些在父類的基類的方法。 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) {}
}
超載有可能在不同的類別:
class Class1
{
public void Function1(string param1);
}
class Class2 : Class1
{
public void Function1(string param1, string param2);
}
然後你有2個選項功能1
我不同意,這是考慮到由於在2個不同的類別超載...'Class2'它來自'Class1'的事實包含一個'Function1(string param1)'方法,並且你用同一個類中的'Function1(string param1,string param2)'來重載它。 – psubsee2003
在roeland:它會給你兩種不同的方法,不同類型的方法試圖做到這一點 –
我已經做到了這一點, –