为什么java的接口的方法是public abstract修饰?

  1、首先要明白接口的定义和作用是什么:

              接口定义:接口是一个全部由抽象方法组成的集合,里面都是抽象方法和常量,用interface修饰。

              接口作用:作为一种规范类的“协议”,规范实现类,增强扩展性。

          知道接口的定义和作用的话,那就不难理解为什么接口中的方法是pubilc abstract 修饰的了,这样的话,接口相对应的实现类就得按照接口的规范来实现,具体细节不接口不管,只管按照这个规范来实现。

          如果接口中的方法是抽象方法,抽象方法是没有方法体,也就是不管实现类的方法体里是什么,只要按照接口的这个规范来写方法名即可,不在意方法体里怎么写。

          好比电脑的USB插槽,电脑主机哪里管你USBU盘是什么型号,多大内存,哪个牌子,哪个国家产的,只要符合主机的插槽大小,插上去就能用,不管你U盘的细节。

    

为什么属性是public static final 修饰?

  1、这也和接口的定义和作用相关。前面已经说了接口的定义和作用了,那么

      final:因为这是在接口里,接口就是一种规范,就不能随意改变值,所以用final修饰属性,用final修饰的属性,叫常量。

      static:1、因为接口是不能创建对象的,只能用static来使接口中的常量能通过接口名来访问。2、是和java的语法有关,如果类C实现了接口A和接口B,接口A、B又有相同变量N,那么可以通过接口名来进行区分。

为什么java的接口的方法是public abstract修饰?为什么属性是public static final 修饰?的更多相关文章

  1. Java反射-修改字段值, 反射修改static final修饰的字段

    反射修改字段 咱们从最简单的例子到难, 一步一步深入. 使用反射修改一个private修饰符的变量name 咱们回到主题, 先用反射来实现一个最基础的功能吧. 其中待获取的name如下: public ...

  2. Java中final与 static final 修饰的常量的区别

    喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( • ̀ω•́ )✧......... ...

  3. java基础 接口私有方法

    /** * 问题描述: * 我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题 * 但是这个共有方法不应该让实现类使用,应该是私有化的. * * 解决方案: * 从java 9开始,接口 ...

  4. java 8 接口默认方法

    解决问题:在java8 之前的版本,在修改已有的接口的时候,需要修改实现该接口的实现类. 作用:解决接口的修改与现有的实现不兼容的问题.在不影响原有实现类的结构下修改新的功能方法 案例: 首先定义一个 ...

  5. Java中接口作为方法的返回

    在<算法>中的散列表一节,在用拉链法实现散列表的API时要求实现以下一个方法: public Iterable<Key> keys() 我们知道Iterable是一个接口,那么 ...

  6. java里的static/final含义

    java里的static/final含义 static static可以修饰:属性,方法,代码段,内部类(静态内部类或嵌套内部类) static修饰的属性的初始化在编译期(类加载的时候),初始化后能改 ...

  7. java 28 - 7 JDK8的新特性 之 接口可以使用方法

    JDK8的新特性: http://bbs.itcast.cn/thread-24398-1-1.html 其中之一:接口可以使用方法 interface Inter { //抽象方法 public a ...

  8. Java中接口的实现问题

    1.Java 接口的访问权限 interface A{}//接口A包访问权限 public interface A{}//接口A公有访问 interface A{ void function1(): ...

  9. 为什么类和接口不能使用private和protected?接口的方法不能使用private、protected、default

    对于java程序员来说,java的访问权限修饰词public.protected.default.private的区别和使用肯定都不是问题,这里也不再啰嗦了,反正度娘一搜就一大把.最近在整理java ...

随机推荐

  1. [CISCN2019 总决赛 Day1 Web4]Laravel1

    0x00 知识点 这个题核心就是找POP链,看了一下网上的WP,难顶啊.. 先贴上思路和poc,之后等熟练了再来做吧 https://glotozz.github.io/2019/11/05/buuc ...

  2. springboot--入门(了解springboot)

    个人认为,springboot和maven差不多.maven方便我们管理jar包,而springboot帮助我们简化spring的配置. 未完,待续.......

  3. For循环的几个练习

    1.括号里面只能放加或减,如果要使等式成立,括号里面应该放什么运算符12()34()56()78()9 = 59 2.蓝球弹起的高度篮球从10米高的地方落下,每次弹起的高度是原来的0.3倍,问弹跳10 ...

  4. It can be a face application using SeetaFace and Qt.

    之前编译了一下SeetaFace的库,用于人脸检测.特征点定位和人脸识别的功能,然后昨天就用Qt写了一个软件用于实现. 工程的文件还是比较简单的,一个界面类和一个SeetaFace的线程类而已.这里主 ...

  5. M内核迎来大BOSS,ARM发布Cortex-M55配NPU Ethos-U55 ,带来无与伦比的性能提升

    说明: 全球顶级嵌入式会展Embedded Word2020这个月底就开了,各路厂家都将拿出看家本领. 先回顾下去年的消息: 1.去年年初的时候ARM发布Armv8.1-M架构,增加了Arm Heli ...

  6. .NET 软件下面win10自动启动配置

    1.设置所有用户登录都能启动,打开文件夹 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 2.给要启动的应用程序创建快捷方式, ...

  7. 2019.3.12 linux关于用户的一些命令

    su:默认切换到root 创建用户 adduser :新建一个用户 sudo adduser 新用户名字 :创建新用户 sudo passwd 用户名:修改该用户名的密码 创建组 sudo addgr ...

  8. POJ 1979:Red and Black

    Red and Black Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 26058   Accepted: 14139 D ...

  9. Pyspider的简单介绍和初使用

    Pyspider   Pyspider是由国人(binux)编写的强大的网络爬虫系统 Ptspider带有强大的WebUi / 脚本编辑器 / 任务监控器 / 项目管理器以及结果处理器.他支持多种数据 ...

  10. php错误和异常的重定向

    通过重定向错误或异常,我们可以更安全的显示错误信息,一般也用来记录错误和异常日志. 参数可以是全局函数名,也可以是类中的方法,非静态方法通过数组传递类名和方法名进去, 静态方法直接带命名空间和类名,看 ...