Java的抽象類和抽象函數

主要內容
1.抽象函數的語法特征.
2.抽象類的語法特征.
3.抽象類的作用.
在面向對象有一個非常非常有用的東西,先抽象,再具體.
因為抽象不容易出現錯誤

問1:什么是抽象函數
只有函數的定義,沒有函數體的函數被稱為抽象函數.
abstract void fun();

問2什么是抽象類
使用abstract定義的類被稱之為抽象類.
1.抽象類不能夠生成對象.
2.如果一個類當中包含有抽象函數,那么這個類必須聲明為抽象類.
3.如果一個類當中沒有抽象函數,那么這類也可以被聲明為抽象類.

抽象類可以有構造函數么?
條件:
1.抽象類不能生成對象.
2.構造函數用于生成類的對象.
結論: 如果從這個片面的兩點來看,抽象類沒有構造函數.
但是.抽象類可以有構造函數,這個構造是為子類服務的.

把知識橫向串列在一起,讓它為了一個目的,減少重復代碼.

總結
1.抽象函數就是沒有函數體的函數.
2.抽象類使用abstrace來定義.
3.抽象類不能生成對象,但是卻可以擁有構造函數.
這構造函數是為了子類準備的.

abstract class Person23{ String name; int age; Person23(){ System.out.println("person構造函數"); } Person23(String name ,int age){ this.name = name; this.age = age; } void introduce(){ System.out.println("名字是" +name+age); } abstract void eat(); }

//這樣可以能過編譯. //abstract class Chinese extends Person23{ // //} //這樣可能通過編譯. class Chinese extends Person23{ Chinese(){ System.out.println("chinese構造函數"); } Chinese(Sting name,int age ,String address){ super(name,age); this.address = address; } void eat(){ System.out.println("用筷子吃飯"); } }

class TestChinese{ public static void main(String args[]){ Person23 p = new Chinese(); p.eat(); } }

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容