博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
总结下java中abstract,interface,final,static,加深理解
阅读量:6849 次
发布时间:2019-06-26

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

hot3.png

一,抽象类: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/kt431128/blog/266814

你可能感兴趣的文章
iOS学习笔记(十五)——数据库操作(SQLite)
查看>>
Android spinner 样式及其使用详解
查看>>
ftps加密服务器
查看>>
[置顶] 批处理命令
查看>>
谈谈不换行空格
查看>>
ubuntu 13.04 nginx.conf 配置详解
查看>>
Android调用系统的打电话和发短信界面(1.将消息内容带过去2.实现群发)
查看>>
如何在内网安装compass
查看>>
TF-IDF理解及其Java实现
查看>>
CRLF line terminators导致shell脚本报错:command not found
查看>>
LeetCode - Combination Sum
查看>>
Mysql 正则获取字段的交集【转】
查看>>
Java NIO2:缓冲区
查看>>
AngularJS 使用$sce控制代码安全检查
查看>>
Linux中ifreq 结构体分析和使用 及其在项目中的简单应用
查看>>
牛客网-《剑指offer》-重建二叉树
查看>>
民用飞机蓄电池选型
查看>>
unity, GUI.Button texture is black
查看>>
CSharpGL(10)两个纹理叠加
查看>>
Linux 删除用户
查看>>