① java中的抽象類是什麼
使用了關鍵詞abstract聲明的類叫作「抽象類」。
如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。
如果一個類里包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。「抽象方法」,屬於一種不完整的方法,只含有一個聲明,沒有方法主體
② java父類是抽象類,子類一定是抽象類嗎
這個沒什麼問題啊,語法里就是這么規定的呀.
抽象類就是被允許有部分或全部方法實現的.
如果抽象類不能有方法實現,那它不就退化為一個介面(interface)了嗎.
建議網路一下抽象類和介面的區別,你就明白了.網上這類文章海量,這里不做復制黏貼的工作了.
③ java 抽象類的派生類,也要是抽象的嗎
不是的喲
抽象類的子類不必也是抽象類,但是必須實現抽象父類的所有abstract方法
④ java 子類繼承抽象父類 什麼情況下子類必須也變成抽象類
只要子類沒有把從父類繼承的抽象方法全部實現(注意是全部實現),就必須也變成抽象類。
這是因為非抽象類中不能有抽象方法。只要類中有一個抽象方法,類就必須是抽象類。
比如父類有2個抽象方法,子類只實現了父類的1個抽象方法,則子類必須是抽象類。
如果子類把父類的2個抽象方法都實現了,就沒必要是抽象類。
判斷標准就是,非抽象子類中不能有抽象方法,如果有抽象方法,子類就必須是抽象類。
如果子類添加了自己的抽象方法,子類也必須是抽象類,無論父類是不是抽象類。
⑤ java抽象類的創建及其子類的創建
publicabstractclassFruit{
privateStringname;
privateStringcolor;
publicFruit(Stringname,Stringcolor){
this.name=name;
this.color=color;
}
publicabstractvoidpirntShape();
publicvoidprintInfo(){
System.out.println(name);
System.out.println(color);
}
}
publicclassAppleextendsFruit{
publicApple(Stringname,Stringcolor){
super(name,color);
}
@Override
publicvoidpirntShape(){
System.out.println("Apple");
}
}
publicclassKiwiextendsFruit{
publicKiwi(Stringname,Stringcolor){
super(name,color);
}
@Override
publicvoidpirntShape(){
System.out.println("Kiwi");
}
}
⑥ java的抽象類和父類子類有啥區別
父類和抽象類:
父類是相對來說的,如果B類繼承自A類,那麼A類就是B類的父類,但是抽象類是一個絕對概念,只要使用abstract關鍵字聲明的類都是抽象類。抽象類不能夠直接被實例化,比如C類是抽象類,那麼就不能使用new關鍵字聲明C類的對象,只能聲明抽象類子類的對象。一般來說,抽象類一定是某些類的父類(否則因為不能聲明抽象類的對象,也就不能使用抽象類,當然這也不是絕對的,如果抽象類中的方法都是靜態方法,不需要使用實例對象,那麼也是可以的),但是父類不一定是抽象類。
子類關系:只要子類沒有把從父類繼承的抽象方法全部實現(注意是全部實現),就必須也變成抽象類。父類有2個抽象方法,子類只實現了父類的1個抽象方法,則子類必須是抽象類。如果子類把父類的2個抽象方法都實現了,就沒必要是抽象類。判斷標准就是,非抽象子類中不能有抽象方法,如果有抽象方法,子類就必須是抽象類。如果子類添加了自己的抽象方法,子類也必須是抽象類,無論父類是不是抽象類。
⑦ Java抽象類中的抽象方法的參數對應的子類的方法的參數必須一致嗎
同學你這個涉及了兩個概念。
一個是抽象方法,一個是方法重載。
先說下概念:
抽象方法就是abstract描述的方法,它本身不含實現,必須由子類實現。
方法重載則是同一個方法名,但是參數類型或者參數個數不同。
理解了這個再看看你的問題。
如果你的子類的「對應的方法」有多個參數,那麼,你這個子類的該方法就不是所謂的「對應的方法」了,它是這個方法的重載。
所以,在這種情況下,子類還是必須實現一個和原抽象方法一致的方法。
即是說,「Java抽象類中的抽象方法的參數對應的子類的方法的參數必須一致」
⑧ java 中普通類繼承,抽象類繼承,介面類繼承,子類一定要重寫父類中的方法嗎
不一定。
1. 普通類繼承,並非一定要重寫父類方法。
2. 抽象類繼承,如果子類也是一個抽象類,並不要求一定重寫父類方法。如果子類不是抽象類,則要求子類一定要實現父類中的抽象方法。
3. 介面類繼承。如果是一個子介面,可以擴展父介面的方法;如果是一個子抽象類,可以部分或全部實現父介面的方法;如果子類不是抽象類,則要求子類一定要實現父介面中定義的所有方法。
⑨ java繼承抽象類與普通類有什麼區別
抽象類:
1、抽象類中可以有普通方法,如果想讓方法子類必須實現,就弄成抽象方法。
2、如果抽象類中有抽象方法,那麼這個類必須定義為抽象類。
3、抽象類不能被new。
普通類:
1、普通類中不能有抽象方法。
2、如果一個普通類實現了一個抽象介面或者抽象類,那麼意味著必須重寫抽象方法。
⑩ java抽象類
其實狠好理解,因為抽象類包括抽象方法和非抽象方法。
如果父類是一個抽象類,當子類繼承父類的時候,要實現抽象的方法,如果不實現的話,那麼子類就必須是一個抽象的類。