zoukankan      html  css  js  c++  java
  • Java8简明学习之接口默认方法

      接口中有默认方法实现
    Java8允许我们使用default关键字,为接口声明添加非抽象的方法实现。

    public interface DefaultInterFace {
    
        int plus(int x, int y);
    
        default int mul(int x, int y) {
            return x*y;
        }
    
        default int mul2(int x, int y) {
            return x*x*y*y;
        }
    }
    public class DefaultInterFaceImpl implements DefaultInterFace {
    
        @Override
        public int plus(int x, int y) {
            return x + y;
        }
    
    //    @Override
    //    public int mul(int x, int y) {
    //        return x*x*y*y;
    //    }
    }
    public class DefaultInterFaceTest {
        @Test
        public void testDefaultInterFace() {
            DefaultInterFace defaultInterFace = new DefaultInterFaceImpl();
            System.out.println(defaultInterFace.plus(5, 6));
            System.out.println(defaultInterFace.mul(5, 6));
            System.out.println(defaultInterFace.mul2(5, 6));
        }
    }

      Java8中接口和抽象类的比较
    相同点:
    都能定义方法和属性(之前接口不能定义方法)。
    抽象类和接口都可以不含有抽象方法。
    抽象类和接口都不能创建对象。
    继承和实现接口或抽象类的子类必须实现接口或抽象类的所有的方法。

    不同点:
    属性上,抽象类可以用各种各样的修饰符修饰。而接口的属性是默认的public static final
    抽象类中可以含有静态代码块和静态方法,而接口不能含有静态方法和静态代码块。
    抽象类可以含有构造方法,接口不能含有构造方法。
    抽象类表示的是IS-A的关系,接口则表示LIKE-A的关系。
    接口只能继承接口。而抽象类可以继承普通的类,也能继承接口和抽象类。

  • 相关阅读:
    FreeBSD10下的MySQL5.5配置安装
    TCP Wrappers
    SNAT技术
    子网掩码, 网段主机数计算
    functools wraps
    数据库引擎
    restframework
    Python使用asyncio+aiohttp异步爬取猫眼电影专业版
    Linux 总结
    Nginx日志管理
  • 原文地址:https://www.cnblogs.com/daily-note/p/9358590.html
Copyright © 2011-2022 走看看