zoukankan      html  css  js  c++  java
  • Java中 final、static、abstract区别与联系

    1、static修饰符
    static作用于代码块:称作静态代码块(可以初始化static field,不能初始化非static field);
    static作用于methods:
    static方法只能访问static 方法,不能访问非static 方法
    static 方法只能访问static field, 不能访问非static field
    非static 方法可以访问static fields 和 static methods
    static method的两种访问方式oject.method和class.method, 非static method只有object.method一种访问方式
    static method中不支持this和super
    static不可以作为局部变量(局部变量包括:函数级局部变量和块级局部变量)
     
    2、final修饰符
    final类不能被继承(不能有abstract final class)(final类内的method自动为final,但不包括属性)
    final方法可以被继承但不能被override 不能有abstract final method
    final属性不能被重新赋值(可以被继承,但不可以修改)定义时可以初始化,也可以不初始化,而在语句块中初始化或者构造函数中初始化(最晚要在构造函数中初始化,只能初始化一次)
    final属性只能人为赋值一次继承与父类的final属性不能被修改
    final可以修饰局部变量表示局部常量(方法级局部变量(形参及局部变量,方法体级局部变量)或块级局部变量)
     
    3、abstract修饰符:
    abstract类不能实例化对象
    abstract类可以不包含abstract方法,但是只要有一个abstract方法那么该类必须为abstract类
    abstract方法没有方法体,需要被override
    abstract类的子类要么实现其父类全部的abstract method,要么也是一个abstract类
    abstract不能修饰属性
    abstract不能修饰局部变量(方法级局部变量(形参级局部变量,方法体级局部变量)或块级局部变量)
     
    4、final、static、abstract之间的关系:
    final、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
    static、abstract不能共存(无论在类、方法、属性、局部变量上都不能共存)
    可以出现final static field(该类成员属性不能被修改)
    可以出现final static method(该类成员方法不能被override)
  • 相关阅读:
    js格式化金额(保留指定小数位,不进行四舍五入每隔三位添加‘,’)
    原生js ajax下载excel,pdf,兼容ie8
    css文本超出显示点点....
    Vue 响应式删除 Vue.delete( target, propertyName/index )
    java报错:com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize out of START_ARRAY token
    Vue 神奇的BUG
    vue 诡异问题
    str.indexOf('') == 0
    vue 绑定style,class
    uniapp 时间轴
  • 原文地址:https://www.cnblogs.com/zhangjinru123/p/7219706.html
Copyright © 2011-2022 走看看