天天看点

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