抽象abstract:
抽象是為了隱藏,用于擴展對象的行為和功能
修飾變量:可以是常量,可以為變量
修飾方法:1.只有方法聲明,沒有方法實現(xiàn)
? ? ? ? ? ? ? ? ? ? 2.需要子類重寫,不能用private,final修飾
修飾類:1.不能被實例化
????????????????2.類包含抽象方法必須在子類中被實現(xiàn),否則子類只能聲明abstract
????????????? ? 3.抽象類中可以有抽象屬性,抽象方法,也可以沒有,但是一旦方法聲明為抽象,類必須抽象
接口interface
接口解決了單繼承的問題,降低程序模塊的耦合。
1.只含有常量和抽象方法,沒有變量和方法實現(xiàn)。即成員類型默認(rèn)public static final,方法默認(rèn)public abstract,
2.接口是一套行為規(guī)范
3.接口不是一個類,不能實例化,沒有構(gòu)造器
對比:
1.接口不能含有任何非抽象方法,而抽象類可以
2.類可以實現(xiàn)多個接口,但只有一個父類,而接口可以多實現(xiàn)
3.抽象類有構(gòu)造方法,接口沒有。
4.設(shè)計理念區(qū)別
抽象類:被繼承體現(xiàn)的是:is a 的關(guān)系,抽象類中定義的是繼承體系的共性功能
接口:實現(xiàn)接口體現(xiàn)的是:like a的關(guān)系,接口中定義的是該繼承體系的擴展功能