Java抽象類

抽象類

如果一個(gè)類沒有足夠的信息來描述一個(gè)具體的對(duì)象,而需要其他具體的類來支撐它,那么這樣的類我們稱它為抽象類。比如new Animal(),我們都知道這個(gè)是產(chǎn)生一個(gè)動(dòng)物Animal對(duì)象,但是這個(gè)Animal具體長(zhǎng)成什么樣子我們并不知道,它沒有一個(gè)具體動(dòng)物的概念,所以他就是一個(gè)抽象類,需要一個(gè)具體的動(dòng)物,如狗、貓來對(duì)它進(jìn)行特定的描述,我們才知道它長(zhǎng)成啥樣。
在使用抽象類時(shí)需要注意幾點(diǎn):
1、抽象類不能被實(shí)例化,實(shí)例化的工作應(yīng)該交由它的子類來完成,它只需要有一個(gè)引用即可。
2、抽象方法必須由子類來進(jìn)行重寫。
3、只要包含一個(gè)抽象方法的抽象類,該方法必須要定義成抽象類,不管是否還包含有其他方法。
4、抽象類中可以包含具體的方法,當(dāng)然也可以不包含抽象方法。
5、子類中的抽象方法不能與父類的抽象方法同名。
6、abstract不能與final并列修飾同一個(gè)類。
7、abstract 不能與private、static、final或native并列修飾同一個(gè)方法。
代碼如下:

/**
 * abstract 修飾的方法,要求非抽象子類必須實(shí)現(xiàn)基類里的抽象方法
 * 只要類中存在抽象方法,要求該類必須是抽象類
 */
public abstract /*使用關(guān)鍵字修飾的類為抽象類*/class Animal {
    public void eat(){
        System.out.println("eat");
    }
    //abstract修飾的方法叫抽象方法
    public abstract void howl();
}
public class Dog extends Animal {
    @Override
    public void howl() {
        System.out.println("wang wang");
    }
    public void yao(){
        System.out.println("yao");
    }

}
public class Cal extends Animal {
    @Override
    public void howl() {
        System.out.println("miao miao");
    }
}
public class Main {

    public static void main(String[] args) {
    // write your code here
        Dog dog = new Dog();
        dog.howl();
        Animal animal = new Cal();
        animal.howl();
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述:動(dòng)物不應(yīng)該定義為具體的東西,而且動(dòng)物中的吃,睡等也不應(yīng)該是具體的。我們把一個(gè)不是具體的功能稱為抽象的功能,而...
    清風(fēng)沐沐閱讀 515評(píng)論 0 0
  • 對(duì)于面向?qū)ο缶幊虂碚f,抽象是它的一大特征之一。在Java中,可以通過兩種形式來體現(xiàn)OOP的抽象:接口和抽象類。接口...
    Q南南南Q閱讀 428評(píng)論 0 3
  • 原文http://kikoroc.com/2016/05/10/java-abstract-classes-and...
    kikoroc閱讀 3,880評(píng)論 0 11
  • Java抽象類、接口、內(nèi)部類(靜態(tài)內(nèi)部類,非靜態(tài)內(nèi)部類、匿名內(nèi)部類)、枚舉類 知識(shí)點(diǎn)總結(jié) 一.抽象類 類的基本特...
    writeanewworld閱讀 1,218評(píng)論 0 1
  • Java的接口和抽象類都可以定義不提供具體實(shí)現(xiàn)的方法,功能上很相似,對(duì)多態(tài)都提供了很好的支持。下面我們就來好好認(rèn)識(shí)...
    iDaniel閱讀 1,695評(píng)論 2 17

友情鏈接更多精彩內(nèi)容