1.百度百科的官方解釋是:使用了關鍵詞abstract(adj.抽象的)聲明的類叫作“抽象類”。所謂的抽象類就是沒有實例對象的類。
那么問題來了,為什么抽象類不能被實例化,因為抽象類中的抽象方法只有名稱,沒有具體實現方法,無法被實例化,抽象類不能用final來修飾,
2.“抽象方法”:屬於一種不完整的方法,只含有一個聲明,沒有方法主體。有抽象方法的類一定是抽象類。抽象類中不一定有抽象方法
舉一個例子,百度知道看到的 如果你的程序里面需要用到蘋果和梨這2個類..那么你可以分別給出這2個類
但是你會發現這2個類里面有共同的屬性和方法(屬性: 都有核.. 方法: 都需要削皮吃...)那么你可以建立抽象類 "水果" 把這些共同的東西都定義在那里. 那么你的2個子類就只需要實其他必要的東東了(味道, 價格...)
優點: 當你需要對蘋果和梨做新的,共同的修改或者添加的時候. 你現在就可以直接對他們的超類 水果 做就可以了。
3.接口和抽象類有什么區別。
- 首先接口方法默認都是public的。所有的方法在接口中不能有實現(據說java8 可以有默認實現了),抽象方法可以是public protected 和default修飾,但是不能被private,static,final,native並列修飾
- 一個class可以實現多個接口,但是只能實現一個抽象類。
- 在設計來看,抽象是類,接口是行為。