JAVA接口在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。并且给java接口在开发程序中起到重要作用,那JAVA接口怎么添加新方法?下面来我们就来给大家讲解一下。
在Java中一个接口一旦发布就已经被定型,除非我们能够一次性的更新所有该接口的实现,否者在接口的添加新方法将会破坏现有接口的实现。默认方法就是为了解决这一问题的,这样接口在发布之后依然能够继续演化。
默认方法就是向接口增加新的行为。它是一种新的方法:接口方法可以是抽象的或者是默认的。默认方法拥有默认实现,接口实现类通过继承得到该默认实现。默认方法不是抽象的,所以我们可以放心的向函数式接口里增加默认方法,而不用担心函数式接口单抽象方法的限制。
public interface Iterator
{
boolean hasNext();
E next();
default void remove()
{
throw new UnsupportedOperationException("remove");
}
default void forEachRemaining(Consumer super E > action)
{
Objects.requireNonNull(action);
while (hasNext())
action.accept(next());
}
}和其他方法一样,默认方法也可以被继承。
除了上面看到的默认方法,Java8中还允许我们在接口中定义静态方法。这使得我们可以从接口中直接调用它相关的辅助方法,而不是从其它的辅助类中调用(如Collections)。在做集合中元素比较的时候,我们一般需要使用静态辅助方法生成实现Comparator的比较器,在Java8中我们可以直接把该静态方法定义在Comparator接口中:
public static >
Comparator comparing(Function keyExtractor)
{
return (c1, c2) - > keyExtractor.apply(c1)
.compareTo(keyExtractor.apply(c2));
}Java接口如何实现?
当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类。
类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。
实现一个接口的语法,可以使用这个公式:
接口语法:
...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...
实例
MammalInt.java 文件代码:
/* 文件名 : MammalInt.java */
public class MammalInt implements Animal
{
public void eat()
{
System.out.println("Mammal eats");
}
public void travel()
{
System.out.println("Mammal travels");
}
public int noOfLegs()
{
return 0;
}
public static void main(String args[])
{
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}以上实例编译运行结果如下:
Mammal eatsMammal travels
重写接口中声明的方法时,需要注意以下规则:
类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常。
类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型。
如果实现接口的类是抽象类,那么就没必要实现该接口的方法。
另外,大家在实现接口的时候也要知道,一个类只能继承一个类,但是能实现多个接口。最后大家如果想要了解更多java常见问答知识,敬请关注奇Q工具网。
推荐阅读: