final
- final的變數的值不能夠被改變
- final的方法不能夠被重寫
- final的類不能夠被繼承
Java中,我們無法讓物件被修飾為final,而只能修飾物件的引用,這意味著即使你寫public final A a = new A(); 事實上a指向的物件的資料依然可以被修改,不能修改的是a本身的引用值,即你不能再對a進行重賦值。
抽象
- 用關鍵字abstract修飾的方法稱為抽象方法。
abstract class A //類A為抽象類 { …… }
不能直接被例項化,因此一般作為其它類的父類,定義目的是提供可由其子類共享的一般形式。
抽象類需要繼承,子類根據自身需要擴充套件抽象類
abstract class A { abstract int aa(int x,int y);//方法aa為抽象方法 }
抽象類中可以沒有抽象方法或某個方法不是抽象方法,有抽象方法的類一定是抽象類[抽象方法只能位於抽象類]。
用abstract關鍵字來修飾一個類時,這個類叫做抽象類:用abstract來修飾一個方法時,該方法叫做抽象方法。
含有抽象方法的類必須被宣告為抽象類,抽象類必須被繼承,抽象方法必須被重寫。
抽象類不能被例項化。
抽象方法只需宣告,而不需實現。
【例】一個帶有抽象成員函式的類。
abstract class A //父類 {
abstract void callme( );
void me( ) {
System.out.println("在A的me成員函式裡"); } }
class B extends A //子類{
void callme( ) {
System.out.println("在B的callme成員函式裡"); } }
public class Abstract {
public static void main(String args[])
{ A a = new B( );//父類new子類
a.callme( );
a.me ( ); 複製程式碼
} }
輸出結果:在B的callme成員函式裡;
在A的me成員函式裡。
5.12
複製程式碼