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)
  • 相关阅读:
    20080619 SQL SERVER 输入 NULL 的快捷键
    20090406 Adobe的“此产品的许可已停止工作”错误的解决办法
    20080908 Office Powerpoint 2007 不能输入中文的解决办法
    20080831 ClearGertrude Blog Skin 's cnblogs_code class
    20080603 Facebook 平台正式开放
    20080519 安装 Microsoft SQL Server 2000 时提示 创建挂起的文件操作
    test
    Linux—fork函数学习笔记
    SOA的设计理念
    Why BCP connects to SQL Server instance which start with account of Network Service fail?
  • 原文地址:https://www.cnblogs.com/zhangjinru123/p/7219706.html
Copyright © 2011-2022 走看看