Java--抽象類

所謂抽象類就是只聲明方法的存在而不去具體實(shí)現(xiàn)它的類。抽象類不能被實(shí)例化,也就是不能創(chuàng)建其對(duì)象。在定義抽象類時(shí),要在class關(guān)鍵字前面加上abstract關(guān)鍵字。定義抽象類,語(yǔ)法格式如下:

abstract class 類名 {

類體

}

定義一個(gè)名稱為Fruit的抽象類:

public abstract class Fruit { //定義抽象類

public String color;? ? //定義顏色成員變量

//定義構(gòu)造方法

public Fruit() {

color = "綠色";? ? //對(duì)變量color進(jìn)行初始化

}

}

在抽象類中創(chuàng)建的,沒(méi)有實(shí)際意義的,必須要子類重寫(xiě)的方法稱為抽象方法。抽象方法只有方法的聲明,而沒(méi)有方法的實(shí)現(xiàn),用abstract關(guān)鍵字進(jìn)行修飾。聲明一個(gè)抽象方法的基本格式如下:

abstract <方法返回值類型> 方法名(參數(shù)列表);

在Fruit抽象類中定義一個(gè)抽象方法

public abstract class Fruit { //定義抽象類

public String color;? ? //定義顏色成員變量

//定義構(gòu)造方法

public Fruit() {

color = "綠色";? ? //對(duì)變量color進(jìn)行初始化

}

//定義抽象方法

public abstract void harvest();? //收獲的方法

}


1.創(chuàng)建Fruit類的子類Apple,并實(shí)現(xiàn)harvest()方法,代碼如下:

public class Apple extends Fruit {

@Override

public void harvest() {

System.out.println("蘋(píng)果已經(jīng)收獲");

}

}

2.創(chuàng)建Fruit的子類Orange,并實(shí)現(xiàn)harvest()方法,代碼如下:

public class Orange extends Fruit {

@Override

public void harvest() {

System.out.println("桔子已經(jīng)收獲");

}

}


3.創(chuàng)建一個(gè)包含main()方法的公共類Farm,在該類中執(zhí)行Fruit類中的兩個(gè)子類的harvest()方法:

public class Farm {

public static void main(String[] args) {

// TODO Auto-generated method stub

Apple apple = new Apple();

apple.harvest();

Orange orange = new Orange();

orange.harvest();

}

}


執(zhí)行結(jié)果:

蘋(píng)果已經(jīng)收獲

桔子已經(jīng)收獲

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 概述:動(dòng)物不應(yīng)該定義為具體的東西,而且動(dòng)物中的吃,睡等也不應(yīng)該是具體的。我們把一個(gè)不是具體的功能稱為抽象的功能,而...
    清風(fēng)沐沐閱讀 491評(píng)論 0 0
  • 1.抽象類 如果一個(gè)類含有抽象方法,則稱這個(gè)類為抽象類,抽象類必須在類前用abstract關(guān)鍵字修飾。它有以下特點(diǎn)...
    KaelQ閱讀 612評(píng)論 1 7
  • 對(duì)于面向?qū)ο缶幊虂?lái)說(shuō),抽象是它的一大特征之一。在Java中,可以通過(guò)兩種形式來(lái)體現(xiàn)OOP的抽象:接口和抽象類。接口...
    Q南南南Q閱讀 378評(píng)論 0 3
  • Java的接口和抽象類都可以定義不提供具體實(shí)現(xiàn)的方法,功能上很相似,對(duì)多態(tài)都提供了很好的支持。下面我們就來(lái)好好認(rèn)識(shí)...
    iDaniel閱讀 1,654評(píng)論 2 17
  • abstract 的理解 abstract(抽象)可以修飾類、方法如果將一個(gè)類設(shè)置為abstract,則此類必須被...
    陽(yáng)光下的狐貍閱讀 388評(píng)論 0 1