Java继承五:final关键字作用简介;

1.final关键字作用简介

   修饰类,使类不能被继承;(如String类就是final修饰的)(子类继承父类的目的就包括,想完善、更改一下父类,被final修饰的类已经是不可更改的究极形态了,自然不能被继承,否则就有点违背Java的设计原则了)

Java继承五:final关键字作用简介;

   修饰(A类中的)方法:(B类继承A类)使得在B类中不能重写该方法,但B类对象依旧是可以调用该方法的;即子类可以继承父类中被final修饰的方法的;

注:final不能修饰构造方法(理所当然,如果可以修饰会莫名其妙)

   修饰变量:修饰的是方法内的局部变量时,就表示,定义的该值不能再被修改了,即该变量只能被赋值一次;对于这种变量可以先定义而不赋值,到使用的时候再赋值就行;

Java继承五:final关键字作用简介;

        修饰类中的成员属性:首先,如果在定义该成员属性时就初始化了(赋值了),那么在其他任何地方都不能再对该成员属性重新赋值;    其次,如果在定义该成员属性时没有初始化(只定义了变量而没有赋值),那么可以在构造代码块和构造方法中初始化。。。

注:这儿的深入理解,待以后。。。。

Java继承五:final关键字作用简介;


可以发现,Java的基本数据类型时可以直接赋值的;但对于引用类型的数据需要通过实例化的方式去构建这个对象,并且这个对象中还有很多属性值;

Java继承五:final关键字作用简介;

且final修饰基本数据类型的变量时,不能二次赋值;;那么当final修饰引用数据类型变量时,该引用类型的变量的引用地址是否可以改变,该引用类型变量里面的属性值是否可以改变呐?

Java继承五:final关键字作用简介;

事实是:引用地址不可以发生改变,其中的属性值是可以修改的;(这儿容易理解,final修饰哪个变量,哪个变量就已经是究极形态了,不可更改了)

Java继承五:final关键字作用简介;

 


如果,对于某个变量,我们既不希望其在程序中被修改,同时又希望其是作为全局变量而存在,那么可以同时用final和static去修饰限定。(这种变量可能根据业务需求,适合那种全局性性、不可改的变量)

Java继承五:final关键字作用简介;