final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。
1. final修饰类:
final修饰类即表示此类已经是“最后的、最终的”含义。因此,用final修饰的类不能被继承,即不能拥有自己的子类。
2. final修饰方法:
final修饰的方法表示此方法不能被重写(可以重载多个final修饰的方法)。
重写与重载区别:
重写:是子类的方法覆盖父类的方法,要求方法名和参数都相同
重载:是在同一个类中的两个或两个以上的方法,拥有相同的方法名,但是参数却不相同,方法体也不相同,最常见的重载的例子就是类的构造函数
1.重写必须继承,重载不用。
2.重写的方法名,参数数目相同,参数类型兼容,重载的方法名相同,参数列表不同。
3.重写的方法修饰符大于等于父类的方法,重载和修饰符无关。
4.重写不可以抛出父类没有抛出的一般异常,可以抛出运行时异常
3. final 修饰变量:
final修饰的变量,一旦定义了final变量并在首次为其显示初始化后,final修饰的变量值不可被改变。final修饰的数组可以改变内部的数据,不能改变数组的引用,对象引用不能再指向其他数组,引用变量指向的是实际的对象,但其存储的是所指向对象的地址,因此,其值不能修改并不意味着其所指向的对象不能修改。final修饰的变量,无论是类属性、对象属性、形参还是局部变量,这些变量都是需要进行显示初始化(即为其显示指定初始值)。