靜態方法與例項方法的區別
靜態方法方法是屬於類的方法,例項方法是屬於由類的物件的方法。
比如:
class A
{
public static void F1() {};
public void F2() {};
}
你可以這樣用F1 A.F1(); 但是A.F2()就會出錯。
可以這樣用F2,
A a = new A(); a.F2(); 但是a.F1()也會出錯。
(over)
---------------------------------------------------------------
個人認為,抽象類與介面的作用從本質上講是一樣的,就是規定一些共同的方法。只要某個類是繼承自某個抽象類的或實現了某個介面,則其必須完全實現該抽象類或介面中的所有方法。
之所有有兩者共存,是因為只支援單一類繼承,但可以實現多個介面來實現類似於多重繼承的功能。
1。抽象類更側重於歸納同一父類的子類的共同特徵,如果屬性,方法;介面更側重於定義任意的類有沒有相同語義的方法。
2。例項的方法可以看作是某個物件的方法,而這個物件是屬於你的應用程式的;靜態方法你可以看作是你的應用程式的一個方法,再把鏡頭拉遠一點,把你的應用程式看作是一個物件的話,那麼靜態方法就是應用程式這個例項的一個方法。至於為什麼要有靜態方法,我想,當一個類的方法在執行時如果不涉及到某些具體需要例項化的資料時,都可以歸為靜態方法。
靜態方法與例項方法的區別
靜態方法方法是屬於類的方法,例項方法是屬於由類的物件的方法。
比如:
class A
{
public static void F1() {};
public void F2() {};
}
你可以這樣用F1 A.F1(); 但是A.F2()就會出錯。
可以這樣用F2,
A a = new A(); a.F2(); 但是a.F1()也會出錯。
(over)
---------------------------------------------------------------
個人認為,抽象類與介面的作用從本質上講是一樣的,就是規定一些共同的方法。只要某個類是繼承自某個抽象類的或實現了某個介面,則其必須完全實現該抽象類或介面中的所有方法。
之所有有兩者共存,是因為只支援單一類繼承,但可以實現多個介面來實現類似於多重繼承的功能。
1。抽象類更側重於歸納同一父類的子類的共同特徵,如果屬性,方法;介面更側重於定義任意的類有沒有相同語義的方法。
2。例項的方法可以看作是某個物件的方法,而這個物件是屬於你的應用程式的;靜態方法你可以看作是你的應用程式的一個方法,再把鏡頭拉遠一點,把你的應用程式看作是一個物件的話,那麼靜態方法就是應用程式這個例項的一個方法。至於為什麼要有靜態方法,我想,當一個類的方法在執行時如果不涉及到某些具體需要例項化的資料時,都可以歸為靜態方法。