final static 关键字

final的意思是最终,修饰类的时候不能被继承,类的成员不能被修改

final修饰类不可以被继承,但是可以继承其他类。

错误示范:

public class Yy {}
public final class Fu extends Yy{} //可以继承Yy类
public class Zi extends Fu{} //不能继承Fu类

  

final修饰的方法不可以被子类重写,但父类中没有被final修饰方法,子类重写后可以加final。

public class Fu {	
	// final修饰的方法,不可以被覆盖,但可以继承使用
public final void method1(){}
public void method2(){}
}
class Zi extends Fu {
	//重写method2方法
	public final void method2(){}
}

  

final修饰的变量称为常量,这些变量只能赋值一次。而且终身不变(包括成员变量和局部变量)。

final修饰的方法不可以被子类重写,但父类中没有被final修饰方法,子类重写后可以加final,子类重写玩加上final孙子类就不能修改子类加上final的了

static关键字
静态不能访问非静态,但是非静态可以访问静态。因为静态是先创造的
被Static修饰过的都属于本类
Static是静态常量,不进站和堆,是在方法和数据共享区内扫描并保存,
静态优先于对象存在。

Static里面不能用this和super关键字,一个是代表本类对象一个代表父类对象,因为是对象,所以他俩还没有创建出来Static就提前创建出来了,所以访问不到。
被Static修饰的就属于类了,调用的时候建议用类名调用:
定义静态常量
public static final 数据类型 变量名 = 值;
具有static和final的共同特点:
创建必须赋值
进入方法和数据共享区,贯穿全局并且直接用类名调用
接口中的每个成员变量都默认使用public static final修饰。
所有接口中的成员变量已是静态常量,由于接口没有构造方法,所以必须显示赋值。可以直接用接口名访问。(简单说:就是创建是必须赋值)

猜你喜欢

转载自www.cnblogs.com/awdsjk/p/10914136.html