zoukankan      html  css  js  c++  java
  • 接口定义加强

      在之前接触到都属于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 } 

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

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

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

  • 相关阅读:
    RGB颜色原理
    JVM内存模型 三
    JVM内存模型 二
    从gcc局部static变量初始化看C/C++区别
    linux下进程堆栈下溢出判断及扩展实现
    fd/pid选择及fd/signal数量限制
    多进程/线程select同一文件问题
    从两个程序看Linux下命令行参数及execve内核实现
    从printXX看tty设备(6)tty框架及串口O_NONBLOCK何时丢失数据
    文件在多大程度、多大范围共享
  • 原文地址:https://www.cnblogs.com/Tony98/p/10464564.html
Copyright © 2011-2022 走看看