1. 程式人生 > >Java中什麼時候用介面,什麼時候用抽象類

Java中什麼時候用介面,什麼時候用抽象類

一.java介面

1.介面的定義為的關鍵字為interface

2.介面中只能有方法和變數,變數為public static final型別,方法只能被可以為public(預設)和protected修飾,方法不能有具體的實現

3.一個類可以實現多個介面

4.一個類實現介面,必須要實現介面的所有的方法

二.抽象類

1.抽象類必須用 abstract修飾

2.如果一個類有abstract方法,這個類一定是抽象類

3.抽象類不一定有抽象方法

4.抽象類可以有自己的變數

5.如果一個類如果繼承一個抽象類,如果沒有實現所有的抽象方法,那它也要為抽象類

三、兩者怎麼選擇呢?

 1.抽象類是對事物的抽象,它包含屬性和行為(方法)的抽象,而介面是對行為的一種抽象。我們在選擇時候可以根據這點來確定。如飛機和鳥,它沒有共同屬性,但是他們有共同的行為——飛,這個時候我們可以用介面。而民用飛機、戰鬥機等他們都是飛機一種,這個時候我們可以將飛機座位一個抽象類。

2.從設計層面來說,抽象類有很多子類,它是一種模板式方法。介面是一種行為規範,它是一種輻射式設計。什麼是模板式方法呢?舉個例子:PPT b,c,d都使用了A模板,現在A模板中增添了一個公共的功能,我們不需要對b,c,d就行改變。什麼是輻射式設計?舉個例子:上帝創造了動物,給每個動物都建立了吃、走等方法,各個動物具體的實現都不同,有一天上帝覺得動物們動的太慢了,於是又增加了一個跑的方法,那麼每個動物都要有一個新的具體實現跑的方式。