首页 > 其他 > 详细

接口定义加强

时间:2019-03-03 12:45:12      阅读:178      评论:0      收藏:0      [点我收藏+]

  在之前接触到都属于JDK1.5到JDK1.7设计的新特性,而从JDK1.8特性开始,并且打破了很多原有的设计方案,其中最大变化的角就是接口,但是千万要记住一点:你们自己写的接口要遵循之前的原则

  技术分享图片在讲解接口加强的处理之前分析一个实际的问题。

 技术分享图片

  造成此种尴尬局面的核心问题在于:接口只是一个方法的声明,没有具体方法的实现,所有随着时间的推移,如果真的出现了以上的问题,那么该接口无法继续使用,那么这个时候从JDK1.8开始为了解决这样的问题,专门提供了两类新的结构

    可以使用default来定义普通方法,需要对象开调用

    可以使用static来定义静态方法,通过接口名就可以调用

范例:定义普通方法 

 1 package cn.Tony.demo;
 2 interface IMessage{
 3     public default void fun() {//追加了普通方法,有方法体
 4         System.out.println("hello");
 5     }
 6     public static IMessage getInstanse() {
 7         return new MessageImpl();
 8     }
 9     public void print();
10 }
11 class MessageImpl implements IMessage{
12     @Override
13     public void print() {
14         System.out.println("Hello");
15     }
16 }
17 public class TestDemo {
18     public static void main(String[] args) {
19         IMessage msg=IMessage.getInstanse();
20         msg.print();
21         msg.fun();
22     }
23 } 

  也就是说整体来讲,接口感觉更像抽象类了,但是比抽象类强大在于,接口的子类依然可以实现多继承的关系,而抽象类只能是单继承

  因为时间一长,许多的支持就会出现问题(量大的情况下),这种时候为了解决这种扩充的问题,才追加了此类问题,

  但是此操作不属于标准设计,它属于挽救设计!

接口定义加强

原文:https://www.cnblogs.com/Tony98/p/10464564.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!