Java中的關鍵字 – final abstract
final 關鍵字
final 意為:最終的,最後的
(1)final 修飾的類不能有子類,類的結構不能夠改變
(2)final 修飾的方法不能夠被子類所覆寫,意味着方法不能被子類改變
(3)final 修飾的成員變量即成為常量,不能被修改
(4)final 還可以修飾局部變量,也為常量,不能被修改
(5)final 還可以修飾形參,在此方法中形參的值不能被改變,但是可以重新對其給定實參
其實也可以這樣了解:用final進行修飾的屬性,方法等時,便是位址指向不能改變(在String Buffer可以展現),因為要改變常量或者方法時,便是要重新指向一個位址。是以說是:是值不能改變。
建立一個 final StringBuffer 對象,在StringBuffer對象中的之可以改變,但對象值的位址則無法改變。
public class Main{
public static void main(String[] args) {
final StringBuffer str = new StringBuffer("Hello");
str.append("World!!!");
StringBuffer str1 = new StringBuffer("World!!!");
str = str1;(會報錯,因為StringBuffer對象是用final聲明得,不能改變對象指的位址)
}
}
abstract 抽象的
abstract隻能修飾屬性和方法
(1)包含一個抽象方法的類必須是抽象類,抽象類說明了類有可以承載抽象方法的的能力,類中可以沒有抽象方法
(2)抽象類和抽象方法都要使用 abstract 關鍵字聲明
(3)抽象方法隻需聲明而不需要實作
public abstract void print();
相當于不實作便是沒有方法體。當沒有方法體時代碼會報錯,我們應該在末尾加上分号。
(4)抽象類必須被子類繼承,子類(如果不是抽象類。如果是抽象類,也可以不用覆寫抽象方法)必須覆寫抽象類中的全部抽象方法
抽象類隻能放在抽象類和接口中。
抽象方法的執行個體:
abstract class Foo {
private int a;
public abstract void print();
}
class Demo01 extends Foo {
public void print(){
System.out.println("Hello World!!!");
}
}