Java final类
来源:互联网 发布:网络银行联盟 编辑:程序博客网 时间:2024/06/08 15:52
final 具有“不可改变”的含义,他可以修饰非抽象类、非抽象成员方法和变量。
1、用final修饰的类不能被继承,没有子类。
2、用final修饰的方法不能被子类的方法重写或隐藏。
3、用final修饰的变量表示常量,只能被赋值一次。
4、父类中的用private修饰的方法不能被子类的方法重写,因此private类型的方法默认为是final类型的。
final类的使用
1、不是专门为继承而设计的类,类本身的方法之间有复杂的调用关系。如果随意创建这些类的子类,子类有可能错误的修改父类的细节。
2、出于安全的原因,类的实现细节不允许有任何改动。
3.、在创建对象模型时,确信这个类不会再被扩展。
final方法
假如父类允许子类继承父类的某些方法或重写某些方法,但保留某些方法,时这些方法不能被继承,那么父类可以将这些方法声明为final类型。如果父类的某个方法是private,子类将无法继承该方法,自然也就无法重写或隐藏该方法。
package javademo;class Parent{private final void method1(){//定义method1()方法为final方法System.out.println("Parent.method1()");}final void method2(){System.out.println("Parent.method2()");}public void method3(){System.out.println("Parent.method3()");}}class Son extends Parent{public final void method1(){//在子类中定义一个method1()方法System.out.println("Son.method1()");}//final void method2(){ //final方法不能被重写//System.out.println("Son.method2()");//}public void method3(){System.out.println("Son.method3()");}}public class FinalMethod {public static void main(String[] args) {// TODO Auto-generated method stubSon s = new Son(); s.method1();Parent p = s; //执行向上转型操作//p.method1(); //不能调用private方法p.method2();p.method3();}}
作为final方法不能被子类重写或隐藏,例如method2()方法就不能在子类中被重写,但是在父类中定义了一个private final 的method1()方法,同时子类中也定义method1()方法,但这不是方法的重写。方法的重写的前提条件是只有子类能继承的实例方法才会被重写,而父类的method1()方法是不能被继承的,因此这个方法不能被重写,只是在子类中定义的新方法而已,着来年各个方法之间毫无法关系的。
final变量
一个变量被限定为final,其实是将它定义为一个符号常量。
final变量具有以下特点:
1、final修饰符可以修饰静态变量、实例变量、局部变量,分别表示静态常量、实例常量、局部常量。
2、final成员百年来那个应该是显式初始化,否则final类型的实例变量会导致编译错误
阅读全文
0 0
- Java final 类,final 方法,final变量
- final方法、final变量、final类、final对象—Java
- java final类
- Java final类
- JAVA平台的final类
- java final和abstract类
- Java final 变量,类,方法
- Java final变量与final类的内存模型
- java final
- java final
- JAVA@final
- java final
- java final
- java final
- JAVA final
- Java-Final
- java final
- java final
- js获取当前页面的url网址信息
- 生物信息学
- 8 Hibernate:关联映射(Associations)
- JSP
- 删除微软自带中文输入法--的方法
- Java final类
- 开关电源
- mvc表单提交总结
- c++基础知识
- 处理inline元素之间换行产生的空白
- Hadoop基础教程-第8章 Zookeeper(8.3 Zookeeper单机模式)(草稿)
- splay的各种操作与简易讲解
- 8.1 Hibernate:一对一关联映射
- C++ 虚函数表解析