JAVA中abstract,interface,final,static语法
转自:http://www.cnblogs.com/yueue/archive/2010/04/20/1715863.html
一,抽象类: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,对于方法,表示不可覆盖,并且可以通过类名直接访问。
最新文章
- 高效的插入子节点DocumentFragment
- 一触即发 App启动优化最佳实践
- c# Invalidate() Update() Refresh()的区别
- ionic隐藏tabs方法
- 在网页中弹出qq临时会话
- OutputDebugString()
- 适配i5,要加入i5的启动页才行,否则运行的效果还是i4
- Qt for Android 程序禁止屏幕旋转
- 系统架构师JD
- linux系统中如何查看日志 (常用命令)
- 线性表的顺序存储结构的实现及其应用(C/C++实现)
- Which SQL statement is the trump card to the senior software developer
- 开始记录学习java的笔记
- java 根据ip获取地区信息(淘宝和新浪)
- servlet中常用到的工具
- pytorch之张量的理解
- Dubbo 源码分析系列之三 —— 架构原理
- asyncio模块中的Future和Task
- string通过逗号分割不用split方法
- 记账本,C,Github,结果
热门文章
- USB多重系統 - 開機碟工具 – WinSetupFromUSB
- Angular2.x
- payload和formData有什么不同?
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
- 用SQL脚本 生成INSERT SQL语句
- 关于Android中物理按键不响应的可能的一个问题。
- java重载中的基本类型的自动类型转换
- Android 怎样在java/native层改动一个文件的权限(mode)与用户(owner)?
- @Html.ValidationMessageFor客户端验证
- js实现replaceAll功能