導航:首頁 > 方法技巧 > 如何重寫基類方法c

如何重寫基類方法c

發布時間:2022-04-11 04:20:33

A. C++中,子類對基類的某一個方法進行了重寫,

子類中還有,不過被屏蔽了。得用DerivedClass.BaseClass::function();的形式來調用。

#include<iostream>

usingnamespacestd;

classBase{
public:
voidtest(){
cout<<"Base"<<endl;
}
};

classDerived:publicBase{
public:
voidtest(){
cout<<"Derived"<<endl;
}
};

intmain(){
Derivedd;
d.test();
d.Base::test();
return0;
}

//Output
Derived
Base

B. C# 基類和派生類 方法重寫

這代碼就亂七八糟,沒法知道結果
只能簡單說明下方法修飾符override 和 new的區別
override : 主要是針對父類定義的虛方法virtua,表示自己只是一種基本實現,多數子類需要根據自己的情況重載;
new : 這種情況是父類已經定義好了實現,而且基本上是通用的,但是某個子類需要特殊處理,就顯式的覆蓋父類方法,你寫個同名方法,new不加也是一樣的,編譯會提示;
兩個都會使用子類的方法替換父類方法。
你自己體會一下它們的含義和目的,代碼結果一目瞭然。

C. 如何重寫基類方法 C#

把新的DataGridView放到form里相當於實例化了一個,你對一個實例重寫什麼啊。。。

D. c# 怎麼重寫基類的構造函數和虛擬方法

1、重寫:繼承時發生,在子類中重新定義父類中的方法,子類中的方法和父類的方法是一樣的,即方法名,參數,返回值都相同。
例如:基類方法聲明為virtual(虛方法),派生類中使用override申明此方法的重寫.
namespace 方法重寫
{
class Program
{

static voidMain(string[] args)
{
BaseClass CO =new ClassOverride();
CO.SetName("Override");
}
//基類
public classBaseClass
{
public virtualvoid SetName(string name)
{
Console.WriteLine("基類:我的名字是" + name);
}
}

//派生類
public classClassOverride : BaseClass
{
publicoverride void SetName(string name)
{
Console.WriteLine("Override:我的名字是" + name);
}
}

}
}

2、重寫override一般用於介面實現和繼承類的方法改寫,要注意:
1)覆蓋的方法的標志必須要和被覆蓋的方法的名字和參數完全匹配,才能達到覆蓋的效果。
2)覆蓋的方法的返回值必須和被覆蓋的方法的返回一致。
3)覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類。
4)被覆蓋的方法不能為private,否則在其子類中只是新定義了一個方法,並沒有對其進行覆蓋。

3、虛方法和抽象方法的區別

1)虛方法有一個實現部分可以被子類繼承,從而使子類獲得和基類相同的方法,另外也為派生類提供了覆蓋該方法的選項。相反,抽象方法沒有提供實現部分,是一種強制派生類覆蓋的方法(否則派生類不能成具體類)

2)(abstract)抽象方法只能在抽象類中聲明,(virtual)虛方法不是。

3)(abstract)抽象方法必須在派生類中重寫而(virtual)虛方法不必。

4)(abstract)抽象方法不能聲明方法實體,虛方法可以。

E. C#如何實現重載和重寫

任何類中的方法都可以重載,重載後的方法實際上是不同的方法,只是他們的名稱相同罷了.
重寫只能是子類override父類中的虛方法,他們是完全相同的方法,重寫之後子類中的方法是新版本,父類中被override的方法是舊版本,默認的都是調用新版本的方法

F. c#如何重寫類

我們首先要寫一個自定義的事件參數,為了簡單起見,我們的自定義按鈕控制項,增加一個TagNumber屬性,它傳遞一個整型數據,當我們處理控制項的Click事件,能夠從事件參數類實例中取得我們在這個屬性中設置的值,因此,我們需要一個MyButtonClickAgre,它從EventArgs類派生。

[csharp]view plainprint?

G. c# 重寫基類方法時,Override 和 New 的區別

override就是子類將父類的方法重新實現了一遍。
new就是說這個方法就是子類自己的,跟父類沒有任何繼承關系關系,僅僅是重名

public class A
{
public virtual string Function()
{
return "1";
}
}
public class B : A
{
public override string Function()
{
return "2";
}
}
public class C : A
{
public new string Function()
{
return "3";
}
}

public class JustForTest
{
public void DoTest()
{
B b = new B();
C c = new C();

Console.WriteLine(b.Function());
Console.WriteLine(c.Function());
Console.WriteLine((b as A).Function());//這兩個就體現出來了,B還是調用自己,返回2
Console.WriteLine((c as A).Function());//C調用的是基類,返回0
}
}

H. C 編程中 子類(派生類)能不能重寫父類(基類)的函數(方法),除了虛函數

override 方法重寫,而能夠方法重寫的方法需要使用virtual 關鍵字修飾,即虛方法,所以理論上除了虛函數,其他方法是不能重寫的,但可以通過new 修飾符隱藏父類方法,達到重寫父類非虛函數的效果。

I. 如何重寫C#控制項基類的事件

使用OnPaint事件可以隨時繪制圖形 調用窗體的OnPaint事件protected override void OnPaint(PaintEventArgs e){ base.OnPaint(e); //繪圖} 但是如何重寫控制項的OnPaint事件呢?比如說繪圖是在PictureBox中繪制的,那麼如何重寫PictureBox的OnPaint事件? 我們無法直接在窗體的代碼中重寫控制項的OnPaint事件,只能重寫窗體的OnPaint事件。 重寫控制項的OnPaint事件,必須創建一個新的控制項。這個控制項繼承Windows的控制項,然後在創建的控制項中重寫控制項的OnPaint事件。 以PictureBox為例: //定義一個新的控制項,繼承PictureBox控制項 public class myPictureBox : PictureBox { //自定義控制項的構造函數 public myPictureBox() { } //重寫控制項的OnPaint屬性 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); //繪圖 } } 使用這種方法,就可以重寫任何一個控制項的OnPaint事件了。

J. C#中沒有找到適合的方法來重寫問題

重寫是指重寫基類的方法,在基類中的方法必須有修飾符virtual,而在子類的方法中必須指明override。
格式:
基類中:
public virtual void myMethod()
{
}
子類中:
public override void myMethod()
{
}
重寫以後,用基類對象和子類對象訪問myMethod()方法,結果都是訪問在子類中重新定義的方法,基類的方法相當於被覆蓋掉了。如下例子:
using System;
class a
{
int x=1;
public virtual void PrintFields()
{
Console.WriteLine("x={0}",x);
}
}

class b:a
{
int y=2;
public override void PrintFields()
{
Console.WriteLine("y={0}",y);

}

}

class c
{
public static void Main()
{
b me=new b();
me.PrintFields();
a y=new b();
y.PrintFields();
}
}
以上代碼運行結果:
y=2
y=2

如果把上面代碼中的override去掉
那麼運行的時候是不會有錯誤,但是會有個警告,因為編譯器不知道你是要重寫該方法,還是隱藏該方法。如果重寫那麼就加override,如果是隱藏那麼就加new,其實不加new也可以運行,但是我們一般還是加上去。
如果是加了new,那麼運行結果是:
y=2
x=1

閱讀全文

與如何重寫基類方法c相關的資料

熱點內容
手臂痛怎樣治療方法視頻 瀏覽:274
酒店套被的簡便方法 瀏覽:187
英語寫教案教學方法有哪些 瀏覽:640
接觸器連接方法怎麼接 瀏覽:941
案例研究方法ppt 瀏覽:136
貴陽哪裡有用火針治療的方法嗎 瀏覽:445
膝關節疼痛鍛煉方法靜蹲 瀏覽:713
y58手機使用方法 瀏覽:404
收中蜂最簡單方法 瀏覽:141
小鴨沖水的正確方法 瀏覽:256
艦艇油料保障方法研究 瀏覽:586
米飯種植方法視頻 瀏覽:556
眼瞼浮腫圖片和治療方法 瀏覽:1000
連鎖賣場賺錢的方法有哪些 瀏覽:59
撕掉塑料膠用什麼方法 瀏覽:143
康復協調評定上肢常用的方法是 瀏覽:635
迅速治療肺炎咳嗽的方法 瀏覽:526
藕的種植方法在哪裡 瀏覽:567
蒸發糕的方法是什麼 瀏覽:115
木耳快速升級的方法 瀏覽:316