抽象類、final和介面
阿新 • • 發佈:2019-01-09
1、抽象類
abstract 放在定義類的最前面,有抽象方法的類一定是抽象類,抽象類不一定有抽象方法。
//有抽象方法的類一定是抽象類 abstract class A { abstract public void f(); //沒有方法體的方法叫做抽象方法, 抽象方法要求末尾必須得加分號,前面必須得加abstract } //抽象類不一定有抽象方法 abstract class B { public void g() { } } public class TestAbstract_1 { public static void main(String[] args) { } }
2、final
(1)、final類
final類不能被繼承,因此final類的成員方法沒有機會被覆蓋,預設都是final的。在設計類時候,如果這個類不需要有子類,類的實現細節不允許改變,並且確信這個類不會載被擴充套件,那麼就設計為final類。
(2)、final方法
如果一個類不允許其子類覆蓋某個方法,則可以把這個方法宣告為final方法。使用final方法的原因有二:
①把方法鎖定,防止任何繼承類修改它的意義和實現。
②高效,編譯器在遇到呼叫final方法時候會轉入內嵌機制,大大提高執行效率。
3、final變數(常變數)
用final修飾的成員變量表示常量,值一旦給定就無法改變,之後不能再被賦值;final修飾的變數有三種:靜態變數、例項變數和區域性變數,分別表示三種類型的常量。