abstract:即抽象的,可以修饰类、方法;

  修饰类:当有一个方法为抽象方法时,这个类就是抽象类,抽象类不能被new,它是一个不完整的类。

  修饰方法:这个方法就是抽象的,即只能方法的定义,没有方法的实现。

final:即最终的,可以修饰类、属性、方法;

  修饰类:这个类不能被继承

  修饰属性:这个属性值不可以被改变

  修饰方法:这个方法为最终方法,不能被重写(覆盖)

  a.final、finally、finalize的区别?

    final用于声明类、属性、方法;表示属性不可变、方法不可覆盖、类不可继承。

    finally是异常处理语句的一部分,表示总是执行。

    finalize是object的一个方法,在垃圾收集器执行时会调用对象的这个方法,供垃圾收集时其他资源的回收。

static:静态修饰符,用于修饰成员和成员函数,可以直接被类名调用。

  修饰属性:这个属性就是静态属性(静态变量|类变量)

  修饰方法:这个方法就是静态方法(类方法)

    注意:静态方法不能直接调用非静态方法;成员方法可以直接调用静态方法

  修饰块:会在类加载时执行的一段代码块,并且只执行一次(静态代码块)

  特点:

    随类的加载而加载,先有静态,之后有对象产生;

    被所有对象所共享;

    可以直接被类名调用;

    静态变量不能直接调用成员变量;

面试问题:为什么abstract不能与private、final、static类共存?

  abstract修饰的类必须被继承,修饰的方法应该被重写;

  final修饰的类,属性、方法不可以被更改,因此修饰的方法不能被重写;

  private修饰的类只能是内部类,修饰的属性、方法只能在本类内部调用,重写的方法不能访问这些方法和属性;

  static修饰的方法是静态的,可以被类所调用,但abstract修饰的方法是抽象的,没有方法体不能被直接调用,需要通过类的继承或接口实现来重写抽象方法后才能使用。

最新文章

  1. 关于Mathematica 的cdf 文件的嵌入应用
  2. myeclipse 注释模板
  3. 关于正则表达式中参数/g /m的详细分析和例子详解
  4. tr:even 与tr:odd
  5. springMVC分页,interceptor实现
  6. CSS实现垂直水平居中
  7. sql server快速删除整个数据库表和存储过程
  8. IIS发布,图片和样式显示不了的问题
  9. ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)
  10. homework-04 单词方阵
  11. 第一章 用three.js创建你的第一个3D场景
  12. objective-c 中代码块(blocks)
  13. 异常Crash之 NSGenericException,NSArray was mutated while being enumerated
  14. BOS物流管理系统-第五天
  15. [实用]DNS解析命令,静静地学会【转载】
  16. 让win7安装时出现版本选项
  17. v-for 循环element-ui菜单
  18. SQL 使用临时表和临时变量完成update表字段---实际案例
  19. JavaScript 随意记
  20. Qt ------ 在 ubuntu 内安装 Qt creator

热门文章

  1. Java描述设计模式(13):迭代器模式
  2. 被忽略的CSS规则
  3. mitmproxy的使用
  4. SAP MCH1表和MCHA表更新逻辑
  5. Docker-核心笔记(含Dockerfile,Compose)
  6. mysql 5.7版本安装
  7. java中的IO流操作总结
  8. windows下切换Python运行环境。
  9. go语言设计模式之bridge
  10. python中可变与不可变类型的全局变量