1. 程式人生 > >抽象類、final和介面

抽象類、final和介面

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修飾的變數有三種:靜態變數、例項變數和區域性變數,分別表示三種類型的常量。