博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中abstract,interface,final,static的区别
阅读量:5968 次
发布时间:2019-06-19

本文共 1167 字,大约阅读时间需要 3 分钟。

hot3.png

关键字: abstract, interface, final, static 一,抽象类:abstract
    1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类;
    2,抽象类中可以有具体的实现方法;
    3,抽象类中可以没有抽象方法;
    4,抽象类中的抽象方法必须被它的子类实现,如果子类没有实现,则该子类继续为抽象类
    5,抽象类不能被实例化,但可以由抽象父类指向的子类实例来调用抽象父类中的具体实现方法;通常作为一种默认行为;
    6,要使用抽象类中的方法,必须有一个子类继承于这个抽象类,并实现抽象类中的抽象方法,通过子类的实例去调用;
二,接口:interface
    1,接口中可以有成员变量,且接口中的成员变量必须定义初始化;
    2,接口中的成员方法只能是方法原型,不能有方法主体;
    3,接口的成员变量和成员方法只能public(或缺省不写),效果一样,都是public
    4,实现接口的类必须全部实现接口中的方法(父类的实现也算,一般有通过基类实现接口中个异性不大的方法来做为适配器的做法)
三,关键字:final
   1,可用于修饰:成员变量,非抽象类(不能与abstract同时出现),非抽象的成员方法,以及方法参数
   2,final方法:不能被子类的方法重写,但可以被继承;
   3,final类:表示该类不能被继承,没有子类;final类中的方法也无法被继承.
   4,final变量:表示常量,只能赋值一次,赋值后不能被修改.final变量必须定义初始化;
   5,final不能用于修饰构造方法;
   6,final参数:只能使用该参数,不能修改该参数的值;
四,关键字:static
   1,可以修饰成员变量和成员方法,但不能修饰类以及构造方法;
   2,被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享
   3,static变量和static方法一般是通过类名直接访问,但也可以通过类的实例来访问(不推荐这种访问方式)
   4,static变量和static方法同样适应java访问修饰符.用public修饰的static变量和static方法,在任何地方都可以通过类 名直接来访问,但用private修饰的static变量和static方法,只能在声明的本类方法及静态块中访问,但不能用this访问,因为this 属于非静态变量.
五,static和final同时使用
   1,static final用来修饰成员变量和成员方法,可简单理解为“全局常量”!
   2,对于变量,表示一旦给值就不可修改,并且通过类名可以访问。
   3,对于方法,表示不可覆盖,并且可以通过类名直接访问。

转载于:https://my.oschina.net/longtutengfei/blog/164740

你可能感兴趣的文章
Mac关闭摄像头
查看>>
015PHP文件处理——文件处理flock 文件锁定 pathinfo realpath tmpfile tempname
查看>>
条件过滤
查看>>
【WPF】屏幕右下角消息提示框
查看>>
OpenCV + python 实现人脸检测(基于照片和视频进行检测)
查看>>
Android环境下通过C框架层控制WIFI【转】
查看>>
不再任人欺负!手游安全的进阶之路
查看>>
卷积转换为矩阵运算中填充数的计算-GEMM
查看>>
WPF Calendar 日历控件 样式自定义
查看>>
vue-自定义组件传值
查看>>
十个 Laravel 5 程序优化技巧
查看>>
R12.1.3 & R12.2.X 注册客户化应用
查看>>
[日常] 算法-旋转字符串-暴力移位法
查看>>
类选择器选择非唯一属性无法精确取值的问题
查看>>
如何查看机器是否为vmware虚拟机
查看>>
graphcool-framework 一个基于graphql的后端开发框架
查看>>
微服务实践分享(4)配置中心
查看>>
下面代码打印的结果?
查看>>
当 position:sticky 遇到 bootstrap 浮动布局时候的踩坑记录
查看>>
一文看懂https如何保证数据传输的安全性的
查看>>