2019独角兽企业重金招聘Python工程师标准>>>

关键字: 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

java中abstract,interface,final,static的区别相关推荐

  1. java中abstract方法可以使用static吗

    java中抽象类中的抽象方法不可以使用static 构成静态抽象方法,抽象类是不能实例化的,即不能被分配内存;而static修饰的方法在类实例化之前就已经别分配了内存,这样一来矛盾就出现了:抽象类不能 ...

  2. Java中import和import static的区别

    一.import ①.导入某个包中的任何一个声明为public的类或者接口 ②.仅导入声明目录下面的类或者接口而不导入子包下的 ③.默认会导入java.lang包下的 二.import static ...

  3. 【Objective-C】java中的interface与Objective-C中的interface的区别

    java中的interface interface叫做接口,是一种特殊的抽象类 一个接口中,所有方法为公开.抽象方法:所有的属性都是公开.静态.常量. 一个类只能继承一个类,但是能实现多个接口,这样可 ...

  4. Java中实现接口与继承的区别

    ** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...

  5. java == hashcode,java中==和equals和hashCode的区别

    java中==和equals和hashCode的区别 == 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同(确切的说,是堆内存地址) equals 的作用: 引用类型:默 ...

  6. java comparator相等_详解Java中Comparable和Comparator接口的区别

    详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...

  7. java中成员变量和全局变量的区别_成员变量与全局变量的区别

    全局变量:也叫成员变量,是指在类中定义的变量:它在整个类中都有效 全局变量又可分为:类变量和实例变量 1.类变量:又叫静态变量  用static修饰  它可以直接用类名调用  也可以用对象调用   而 ...

  8. java中的sleep()和wait()的区别

    对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...

  9. Java中的关键字——final

    引言 final 关键字和 c# 中的 sealed 关键字比较像,和 static 一样,它可以用来修饰类.变量和方法:final顾名思义,最后的最终的,所以用它修饰的类.变量和方法不可以改变: 下 ...

最新文章

  1. 教你些技巧,用 Python 自动化办公做一些有趣的事情!太方便了
  2. 安装C语言版本tensorflow
  3. ASP.NET Core MVC – 自定义 Tag Helpers
  4. poj 1035 Spell checker(hash)
  5. 快照(Snapshot)
  6. MySQL 复制:最简单也最容易配置出错
  7. 超详细Hexo+Github博客搭建小白教程
  8. java代码性能优化
  9. 上位机与下位机进行交互
  10. PCB Layout初学者必会知识总结(转)
  11. 使用经验-深度学习云服务器mist GPU
  12. ViTAE论文阅读与官方代码讲解
  13. 定额人工费调整差额的几个解决方案
  14. win7识别到移动硬盘,但不显示盘符解决办法
  15. PCB 线路铜皮面积(残铜率)计算的实现方法
  16. RecyclerView安卓androidx.widget.RecyclerView
  17. 乔治·霍兹(George Hotz):特斯拉、谷歌最可怕的对手!
  18. matlab狗抓兔子,怎样训成年犬捉兔子-怎样训狗抓兔子
  19. Lightgbm基本原理介绍
  20. createjs开发教程

热门文章

  1. eplan模板_EPLAN之3D箱柜清单自动生成
  2. python如何安装seaborn模块_seaborn模块的基本使用
  3. sumif三个条件怎么填_Excel条件求和函数sumif详解及应用
  4. 密码嗅探工具dsniff
  5. iOS Sprite Kit教程之场景的设置
  6. Playmaker全面实践教程之简单的使用Playmaker示例
  7. Wireshark网络分析实例集锦2.1.2隐藏、删除、重新排序及编辑列
  8. Unity 4.x 2D游戏开发基础教程大学霸第一更
  9. python 英语翻译 excel_python批量将excel内容进行翻译写入功能
  10. mysql导出数据 程序_MySQL数据导出与导入程序代码