为什么java接口中可以有default或者static修饰的方法?

转载 2016年08月29日 15:40:37

转自:http://zhidao.baidu.com/link?url=Ai_0Rsueo5r2gqN5w3Q5UvAwWGHRuxqD5CYmRse1Xa10_-e01RneZO_7GnGGk7AqCNX96vedQ21j8jk2tLhbefQ2iZe4jLrpFjs6Z9GD06W


为什么java接口中可以有default或者static修饰的方法?


首先,java的成员变量(属性)都有public、static、final关键字修饰,成员方法都有public修饰(可以不用显示指明该关键字)。

java接口中的default方法是在java 8之后引入的,即在不破坏java现有实现架构的情况下能往接口里增加新方法。
Java接口现在可以有非抽象方法了。Default 方法带来的好处是,往接口新增一个Default 方法,而不破坏现有的实现架构。尽管如此,Default 方法不适合过多使用,但是对于Java集合API的优化升级,并达到无缝地结合Lambda表达式来说,Default 方法是至关重要的特性。

这个是1.8的新特性,使用 default关键字给接口添加一个非抽象的方法实现,这个特征又叫做扩展方法,子类可以直接调用!


接口中用static修饰的方法也可以有方法体,和类的静态方法一样,可以通过  接口名.方法名  进行接口中 static方法的调用。





jdk1.8 新特性之 default,static 接口关键字

实现接口必需实现其所有方法嘛?在jdk1.7以前是必需的,有了jdk1.8,这个概念可忘记了,接口可以有自己的默认实现了,接口能编写静态方法嘛?jdk1.7以前肯定是不行的,有了jdk1.8又是成了可...
  • dounine
  • dounine
  • 2016年11月26日 23:29
  • 1186

JAVA8接口中的default、static方法使用注意事项

JAVA8中接口interface引入方法实现的猜想在JAVA8之前java中的接口类型旨在定义类型的接口规约,并不能拥有自己的方法实现,具体实现完全交由实现类自己完成。以普通人和中上阶层为例,为各自...

内部接口可以被什么修饰符修饰

1.static:内部接口必须static,默认就是static。我觉得可以这样理解static的意义,当它描述外部的“东西”(类,接口)时它表示是否可以被实例化(因为接口不可被实例化,所以外部接口不...
  • hjvgf
  • hjvgf
  • 2017年05月08日 21:47
  • 500

Java8中接口中可添加的default修饰方法体

我们都知道在Java语言的接口中只能定义方法名,而不能包含方法的具体实现代码。接口中定义的方法必须在接口的非抽象子类中实现。下面就是关于接口的一个例子: 1 2 ...

探究java接口中的变量与方法

关于变量 java接口里的变量都是默认 pubic static final的 为啥? public 接口得能被所有对象调用 static 这个变量是属于接口本身,而不是实现了接口的对象的 具...

JDK8新特性:接口的静态方法和默认方法

在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。JDK8及以后,允许我们在接口中定义stati...

java 接口中用private、protected、public、default和status修饰方法和变量

通常使用java 的接口时都是不带修饰符的public interface Test { int a = 0; void test(); } 其实这个里面有好多修饰符都是默认省略掉了。 正确...
  • zpzkitt
  • zpzkitt
  • 2017年11月09日 18:12
  • 42

为什么用static来修饰方法或者变量?用处?

对于用static修饰的变量称为静态变量,也叫类变量。由类创建的所有对象都可以共用这个变量。类变量随着类的加载而加载,即使此类还未new过对象,这个类变量也存在,而且仅一份。 顺便说一下实例变量,实...

Java static修饰方法

  • 2017年04月24日 23:17
  • 4KB
  • 下载

Java 动态的创建注入代码,注入方法给类或者接口并通过反射调用

java 动态编译代码(在运行阶段动态注入代码)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为什么java接口中可以有default或者static修饰的方法?
举报原因:
原因补充:

(最多只允许输入30个字)