final , static , this , super 四个关键字

final , static , this , super 四个关键字

final:变量、方法、类。

1.final修饰一个类时,表明这个类不能被继承

  1. final修饰的方法表示此方法已经是“最后的、最终的”含义,亦即此方法不能被重写(可以重载多个final修饰的方法)

注意:因为重写的前提是子类可以从父类中继承此方法,如果父类中final修饰的方法同时访问控制权限为private,将会导致子类中不能直接继承到此方法,因此,此时可以在子类中定义相同的方法名和参数,此时不再产生重写与final的矛盾,而是在子类中重新定义了新的方法。(注:类的private方法会隐式地被指定为final方法。)

  1. final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

static关键字

主要有以下四种使用场景:
1.修饰成员变量和成员方法:被static修饰的成员属于类,不属于单个这个类的某个对象,被类中所
有对象共享,可以并且建议通过类名调用。被static 声明的成员变量属于静态成员变量,静态变量
存放在Java内存区域的方法区。调用格式:类名.静态变量名类名.静态方法名()
2.静态代码块:静态代码块定义在类中方法外,静态代码块在非静态代码块之前执行(静态代码块一-> 非
静态代码块一>构造方法)。 该类不管创建多少对象, 静态代码块只执行一-次.
3.静态内部类(static修饰类的话只能修饰内部类) :静态内部类 与非静态内部类之间存在一个最
大的区别:非静态内部类在编译完成之后会隐含地保存着-一个引用,该引用是指向创建它的外围
类,但是静态内部类却没有。没有这个引用就意味着: 1. 它的创建是不需要依赖外围类的创建。2
它不能使用任何外围类的非static成员变量和方法。
4.静态导包(用来导入类中的静态资源,1.5之 后的新特性):格式为: import static 这两个关键字
连用可以指定导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使
用类中静态成员变量和成员方法。

this 关键字

this关键字用于引用类的当前实例。

super关键字

super关键字用于从子类访问父类的变量和方法。

使用this和super要注意的问题:
●在构造器中使用super () 调用父类中的其他构造方法时,该语句必须处于构造器的首行,否则
编译器会报错。另外, this调用本类中的其他构造方法时,也要放在首行。
●this、 super不能用在static方法中。

简单解释一下:
被static修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享。而this代表对本类
对象的引用,指向本类对象;而super代表对父类对象的引用,指向父类对象;所以,this和super是
属于对象范畴的东西,而静态方法是属于类范畴的东西。

你可能感兴趣的:(final , static , this , super 四个关键字)