javaabstract
『壹』 java中abstract方法的格式是什麼
抽象成員方法的定義格式為:
【方法修飾詞列表】 返回類型 方法名(方法的參數列表);
其中,方法修飾詞列表含有關鍵字abstract。
如果方法修飾詞列表還含有其他方法修飾詞,則在相鄰方法修飾詞之間通過空格隔開。
方法的參數列表可以不包含參數、也可以包含1個或多個參數。
例如:public abstract int p(int x,String s);
抽象方法的定義格式與不具有抽象屬性的成員方法的定義格式之間的區別:
①除了是否含有方法修飾詞abst之外,抽象成員方法的定義以分號結束,不含方法體。
②而不具有抽象屬性的成員方法的定義在成員方法聲明之後不能立即出現分號,必須含有方法體。
注意:如果一個類不具有抽象屬性,則不能再該類的類體中定義抽象成員方法
『貳』 Java中abstract的意思以及用法
abstract(抽象)修飾符,可以修飾類和方法
1,abstract修飾類,會使這個類成為一個抽象類,這個類將不能生成對象實例,但可以做為對象變數聲明的類型,也就是編譯時類型,抽象類就像當於一類的半成品,需要子類繼承並覆蓋其中的抽象方法。
2,abstract修飾方法,會使這個方法變成抽象方法,也就是只有聲明(定義)而沒有實現,實現部分以";"代替。需要子類繼承實現(覆蓋)。
注意:有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。
abstract修飾符在修飾類時必須放在類名前。
abstract修飾方法就是要求其子類覆蓋(實現)這個方法。調用時可以以多態方式調用子類覆蓋(實現)後的方法,也就是說抽象方法必須在其子類中實現,除非子類本身也是抽象類。
注意:父類是抽象類,其中有抽象方法,那麼子類繼承父類,並把父類中的所有抽象方法都實現(覆蓋)了,子類才有創建對象的實例的能力,否則子類也必須是抽象類。抽象類中可以有構造方法,是子類在構造子類對象時需要調用的父類(抽象類)的構造方法。
舉個簡單的例子下面有一個抽象類
abstract class E{
public abstract void show();//public abstract 可以省略
}
然後其它類如果繼承它通常為了實現它裡面的方法
class F extends E{
void show(){
//寫具體實現的代碼
}
}
最後再主方法裡面定義一個父類引用指向子類對象,就會發生多態現象,比如
E e=new F();
e.show();
實際調用了子類裡面的show()方法
『叄』 java: abstract類中可否定義private成員 為什麼
可以,abstract類中可以有private屬性。跟介面不同,abstract類中可以有已經實現的方法,private屬性可以通過set和get方法來取值和賦值。
『肆』 怎麼理解JAVA中的abstract類和abstract方法
這個問題網上有回答:
含有abstract修飾符的class即為抽象類,abstract 類不能創建的實例對象。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體(Concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義為abstract類型。
介面(interface)可以說成是抽象類的一種特例,介面中的所有方法都必須是抽象的。介面中的方法定義默認為public abstract類型,介面中的成員變數類型默認為public static final。
下面比較一下兩者的語法區別:
1.抽象類可以有構造方法,介面中不能有構造方法。
2.抽象類中可以有普通成員變數,介面中沒有普通成員變數
3.抽象類中可以包含非抽象的普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的普通方法。
4. 抽象類中的抽象方法的訪問類型可以是public,protected和(默認類型,雖然
eclipse下不報錯,但應該也不行),但介面中的抽象方法只能是public類型的,並且默認即為public abstract類型。
5. 抽象類中可以包含靜態方法,介面中不能包含靜態方法
6. 抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問類型可以任意,但介面中定義的變數只能是public static final類型,並且默認即為public static final類型。
『伍』 JAVA中abstract
2是對的
抽象類中可以沒有抽象的方法,只是抽象類不能實例化。
但是一旦一個類中有抽象方法,所在class必定要是class,否則會有編譯錯誤
『陸』 java中abstract怎麼使用
abstract
一般用來修飾類的,含有abstract修飾符的class即為抽象類,abstract 類不能創建的實例對象。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體(Concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義為abstract類型。
建議與介面(interface)結合起來看。
『柒』 java 關於 abstract 概念的問題 在線等 真誠求學 新手
抽象類可以不包含抽象方法,但包含抽象方法的類一定是抽象類。
如:
publicabstractclassFather{
protectedvoidfatherSay(){
System.out.println("Iamafatherclass!");
}
}abstract不能被實例化,盡管裡面沒有abstract方法,但用abstract聲明了,如果嘗試實例化還是會報錯,算是抬杠吧。。
『捌』 Java中abstract和interface的區別
1.abstract class 在 Java 語言中表示的是一種繼承關系,一個類只能使用一次繼承關系。但是,一個類卻可以實現多個interface。
2.在abstract class 中可以有自己的數據成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態的不能被修改的數據成員(也就是必須是static final的,不過在 interface中一般不定義數據成員),所有的成員方法都是abstract的。
3.abstract class和interface所反映出的設計理念不同。其實abstract class表示的是"is-a"關系,interface表示的是"like-a"關系。
4.實現抽象類和介面的類必須實現其中的所有方法。抽象類中可以有非抽象方法。介面中則不能有實現方法。
5.介面中定義的變數默認是public static final 型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。
6.抽象類中的變數默認是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。
7.介面中的方法默認都是 public,abstract 類型的。
『玖』 abstract 在java中干什麼用的
聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變數,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
static與abstract,它們不能同時用於修飾一個方法。因為abstract的語義就是說這個方法是多態方法,需要subclass的實現。而static方法則是在本類中實現的,編譯期綁定,不具有多態行為。
synchronized同步,也是一樣的道理,具體可以參考JAVA語言規范