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