abstract - java

來源:趣味經驗館 8.12K

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

abstract java是什麼,讓我們一起了解一下?

1.abstract是修飾類,會讓它成為一個抽象類,而這個類將不能生成物件例項,但可以做為物件變數宣告的型別,也就是編譯時型別,抽象類就像當於一類的半成品,需要子類繼承並覆蓋其中的抽象方法。

2.abstract是修飾方法,會使這個方法變成抽象方法,也就是隻有宣告(定義)而沒有實現,實現部分以";"代替。需要子類繼承實現(覆蓋)。

注意:有抽象方法的類一定是抽象類。但是抽象類中不一定都是抽象方法,也可以全是具體方法。

abstract java

1、那麼問題來了,什麼是抽象類?

1.類和類之間如果具有相同的特徵,將這些共同的特徵提取出來,形成的就是抽象類。

2.類本身是不存在的,所以抽象類無法例項化物件。
3.類到物件是例項化,物件到類是抽象。

他的測試程式碼是:

public class Testpublic static void main(String[] args){Animal a1=new Animal();//此行報錯//抽象類Animalabstract class Animal {

2、為什麼abstract修飾符在修飾類時必須放在類名前?
因為abstract修飾方法就是要求其子類覆蓋(實現)這個方法。呼叫時可以以多型方式呼叫子類覆蓋(實現)後的方法,也就是說抽象方法必須在其子類中實現,除非子類本身也是抽象類。
注意:父類是抽象類,其中有抽象方法,那麼子類繼承父類,並把父類中的所有抽象方法都實現(覆蓋)了,子類才有建立物件的例項的能力,否則子類也必須是抽象類。抽象類中可以有構造方法,是子類在構造子類物件時需要呼叫的父類(抽象類)的構造方法。


舉個簡單的例子下面有一個抽象類:


abstract class E{
public abstract void show();//public abstract 可以省略
}
然後其它類如果繼承它通常為了實現它裡面的方法

class F extends E{
void show(){
//寫具體實現的程式碼
}
}
最後再主方法裡面定義一個父類引用指向子類物件,就會發生多型現象,比如
E e=new F();
e.show();
實際呼叫了子類裡面的show()方法。

以上就是小編今天的分享了,希望可以幫助到大家。

熱門標籤