为什么java的接口的方法是public abstract修饰?为什么属性是public static final 修饰?
为什么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 修饰?的更多相关文章
- Java反射-修改字段值, 反射修改static final修饰的字段
反射修改字段 咱们从最简单的例子到难, 一步一步深入. 使用反射修改一个private修饰符的变量name 咱们回到主题, 先用反射来实现一个最基础的功能吧. 其中待获取的name如下: public ...
- Java中final与 static final 修饰的常量的区别
喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( • ̀ω•́ )✧......... ...
- java基础 接口私有方法
/** * 问题描述: * 我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题 * 但是这个共有方法不应该让实现类使用,应该是私有化的. * * 解决方案: * 从java 9开始,接口 ...
- java 8 接口默认方法
解决问题:在java8 之前的版本,在修改已有的接口的时候,需要修改实现该接口的实现类. 作用:解决接口的修改与现有的实现不兼容的问题.在不影响原有实现类的结构下修改新的功能方法 案例: 首先定义一个 ...
- Java中接口作为方法的返回
在<算法>中的散列表一节,在用拉链法实现散列表的API时要求实现以下一个方法: public Iterable<Key> keys() 我们知道Iterable是一个接口,那么 ...
- java里的static/final含义
java里的static/final含义 static static可以修饰:属性,方法,代码段,内部类(静态内部类或嵌套内部类) static修饰的属性的初始化在编译期(类加载的时候),初始化后能改 ...
- java 28 - 7 JDK8的新特性 之 接口可以使用方法
JDK8的新特性: http://bbs.itcast.cn/thread-24398-1-1.html 其中之一:接口可以使用方法 interface Inter { //抽象方法 public a ...
- Java中接口的实现问题
1.Java 接口的访问权限 interface A{}//接口A包访问权限 public interface A{}//接口A公有访问 interface A{ void function1(): ...
- 为什么类和接口不能使用private和protected?接口的方法不能使用private、protected、default
对于java程序员来说,java的访问权限修饰词public.protected.default.private的区别和使用肯定都不是问题,这里也不再啰嗦了,反正度娘一搜就一大把.最近在整理java ...
随机推荐
- Python logging模块 控制台、文件输出
步骤 导入logging模块 设置level(此处是DEBUG) 添加文件handler和流handler import logging logger=logging.getLogger(__name ...
- matplotlib画图--Line Color
1.线形 2.标记 3.颜色
- For循环的几个练习
1.括号里面只能放加或减,如果要使等式成立,括号里面应该放什么运算符12()34()56()78()9 = 59 2.蓝球弹起的高度篮球从10米高的地方落下,每次弹起的高度是原来的0.3倍,问弹跳10 ...
- Maven:Failure executing javac, but could not parse the error:javac: 无效的目标发行版: 1.8
eclipse中对着项目maven——>>maven install时出现错误:Failure executing javac, but could not parse the error ...
- BZOJ 2285 [Sdoi2011]保密
题解: 求比值用分数规划,单个求太慢了套整体二分 然后求二分图最小割 // luogu-judger-enable-o2 #include<iostream> #include<cs ...
- transform—切割轮播图
效果演示: 1.结构分析 第一步:在一个div里面有显示图片的ul标签(1个)和左右切换的a标签(2个): 第二步:ul标签中有5个li标签,li标签浮动,每个li标签的宽度占ul宽度的五分之一,高度 ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 索引
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是 ...
- 吴裕雄--天生自然 JAVASCRIPT开发学习: 错误 - throw、try 和 catch
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- PAT Advanced 1066 Root of AVL Tree (25) [平衡⼆叉树(AVL树)]
题目 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child ...
- PAT Advanced 1094 The Largest Generation (25) [BFS,DFS,树的遍历]
题目 A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level ...