天天看點

Java中的關鍵字 -- final abstractJava中的關鍵字 – final abstract

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!!!");
    }
}