java8中接口中可以有方法实现
2015-01-10 00:05
274 查看
在jdk1.7及以前我们被传授的都是抽象类中可以有抽象方法,接口是特殊的抽象类,因为接口中的所有方法都必须是抽象的,不能有方法实现,而到了Java8,我们发现在接口中也可以有方法的实现,大家是不是有些接受不了呢?其实我刚开始也有些接受不了,现在就将Java8中接口中带方法实现的例子贴出来,作
首先我们按照之普通的接口定义一个接口
public interface InterfaceSay { public void say(); }
再有一个实现类
public class SayImp implements InterfaceSay { public static void main(String[] args) { SayImp say=new SayImp(); say.sayhi(); } @Override public void say() { // TODO Auto-generated method stub System.out.println("世界你好 !!"); } }这是我们最熟悉的接口,下面我们在接口中加入带有实现的方法,这个带有实现的方法需要在方法前使用default关键字
public interface InterfaceSay { public void say(); default public void sayhi() { System.out.println("hello world"); } }接着定义一个实现类
public class SayImp implements InterfaceSay { public static void main(String[] args) { SayImp say=new SayImp(); say.sayhi(); } @Override public void say() { // TODO Auto-generated method stub System.out.println("世界你好 !!"); } }
我们都知道接口是可以有多实现的,如果在两个接口中都有了default修饰的相同方法,那么在实现类中程序将不知道该使用哪个default的方法了,这时就要显示声明使用哪一个
public class SayImp implements InterfaceSay,InterfaceSay2 { public static void main(String[] args) { SayImp say=new SayImp(); say.sayhi(); } @Override public void say() { // TODO Auto-generated method stub System.out.println("世界你好 !!"); } public void sayhi() { InterfaceSay.super.sayhi(); } }
相关文章推荐
- 五星-原型模式常使用于以下场景--而JAVA中的任何类只要实现了Cloneable标识接口,就可以使用clone方法来进行对象的拷贝
- Java基础知识强化18:抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
- Effective Java 对于所有对象都通用的方法 12.考虑实现Comparable(可以比较)接口
- 纳尼,java可以在接口中实现非抽象方法了?
- java接口是否可以有实现方法?java8 引入default 关键字
- VC实现java定义的接口的一些方法
- java中有几种方法可以实现一个线程?用什么关键字修饰同步
- java 外部调用c程序(后缀为.exe--是可以运行的程序--不是本地方法的实现)
- java基础问题---java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用
- 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
- java下自定义read方法的实现并可以继承
- 普通java类(排序)实现Comparable接口重写CompareTo方法
- java中的继承问题,类B继承A,那么构造方法需要这样写吗?这不是重复吗?还有接口与抽象类怎么实现?
- java创建多线程的两种方法(继承Thread类/实现Runnable接口)
- java中File类可以实现的操作及其实现的方法
- java 学习 私有类实现接口 ,一个类继承来的方法和接口实现方法重复第八天
- Java:对集合中的对象进行排序需要实现Interface Comparable接口并实现int compareTo(T o)方法
- java基础问题----java中有几种方法可以实现一个线
- java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口