靜態(tài)方法只能用類(lèi)名調(diào)用 c#請(qǐng)說(shuō)明什么是類(lèi)的實(shí)例方法和靜態(tài)方法,以及它們間的區(qū)別?
c#請(qǐng)說(shuō)明什么是類(lèi)的實(shí)例方法和靜態(tài)方法,以及它們間的區(qū)別?靜態(tài)方法和實(shí)例方法的區(qū)別靜態(tài)方法屬于類(lèi)方法,實(shí)例方法屬于類(lèi)對(duì)象方法。例如:class A{public static void F1(){}p
c#請(qǐng)說(shuō)明什么是類(lèi)的實(shí)例方法和靜態(tài)方法,以及它們間的區(qū)別?
靜態(tài)方法和實(shí)例方法的區(qū)別
靜態(tài)方法屬于類(lèi)方法,實(shí)例方法屬于類(lèi)對(duì)象方法。
例如:
class A
{
public static void F1(){}
public void F2(){}
可以這樣使用F1 A.F1(),但是A.F2()會(huì)出錯(cuò)。
您可以像這樣使用F2,
a=new a()a.F2(),但a.f1()也會(huì)出錯(cuò)。
在我看來(lái),抽象類(lèi)和接口的功能本質(zhì)上是相同的,即指定一些常用方法。只要類(lèi)從抽象類(lèi)繼承或?qū)崿F(xiàn)接口,它就必須完全實(shí)現(xiàn)抽象類(lèi)或接口中的所有方法。
它只支持單類(lèi)繼承,但可以實(shí)現(xiàn)多個(gè)接口來(lái)實(shí)現(xiàn)類(lèi)似于多重繼承的功能。
1.抽象類(lèi)更側(cè)重于泛化同一父類(lèi)的子類(lèi)的共同特性,如屬性和方法;接口更側(cè)重于定義任何類(lèi)是否具有相同的語(yǔ)義方法。
2.實(shí)例方法可以看作是屬于您的應(yīng)用程序的對(duì)象的方法。靜態(tài)方法可以看作是應(yīng)用程序的一種方法。如果將應(yīng)用程序作為對(duì)象,則靜態(tài)方法是應(yīng)用程序?qū)嵗姆椒āV劣跒槭裁磻?yīng)該有靜態(tài)方法,我認(rèn)為當(dāng)一個(gè)類(lèi)方法被執(zhí)行時(shí),如果它不涉及一些需要實(shí)例化的特定數(shù)據(jù),它可以被歸類(lèi)為靜態(tài)方法。