您的位置:首页 > 编程语言 > Java开发

Java基础——final关键字

2016-05-20 00:15 447 查看
final的定义,final关键字可用于修饰类,变量和方法,意思为“无法改变的,最终,是定死了的”。

final的特性:

1.final修饰的类不能被继承

2.final修饰的方法不能被子类重写,覆盖

3.final修饰的变量(成员变量和局部变量)是常量,只能复制一次

4.当使用的数据不变时,需要定义阅读性强的名称来表示该数据,并将该数据final化。

5.final修饰的变量 名称规范是:所有字母大写(final int AGE=18;),如果是多个字母组成,则在单词之间加_分隔

class Animal{

void shout(){

System.out.println(“啊呜~”);

}

}

class Dog extends Animal{

void shout(){

System.out.println(“汪汪!”);

}

}

public class G

{

public static void main(String[] args){

Dog dog=new Dog();

dog.shout ();

}

}

如上所写编译后的结果:


子类Dog将父类Animal重写了,而如果用final修饰了Animal类的话,

final class Animal{

void shout(){

System.out.println(“啊呜~”);

}

}

class Dog extends Animal{

void shout(){

System.out.println(“汪汪!”);

}

}

public class G

{

public static void main(String[] args){

Dog dog=new Dog();

dog.shout ();

}

}

运行之后就会出现



如图中途中所述,子类已无法继承父类了。

如果final修饰了父类的方法,也会出现类似的报错,这个运用可以理解为(如果你父类中有5个方法,其中2个是你不想被覆盖的,就可以在方法前加final,另外不加final的三个就可以被子类的方法覆盖了,而加了的则还是原来的,不过其实这并没有什么卵用,因为只要有final,控制台就会报错,理解就好- -!)

最后就是final修饰的变量为常量,意思就是当final修饰的变量一旦被赋值了,其值就不能改变了,如果再次对其赋值就会报错,也就是他只能被赋值一次。例:



上图中变量X被第二次赋值后,最终输出的值为2

那么我们在变量前加上final



如图所述,被final修饰过了之后,XMA便成了最终变量,已不能再被赋值(注:final修饰的变量要大写,这是规范,跟类名首字母大写一个意思)

另外附带一提的是,如果在子类方法前加一个final,是可以覆盖父类的方法的,然并卵,知道就好!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: