接口 & 抽象类

 抽象类接口
实例化不能不能
定义包含抽象方法的类方法和静态常量的集合
组成构造函数、抽象方法、普通方法、常量、变量方法、静态常量
使用子类继承抽象类(extends);
如果子类不是抽象类,它需要提供抽象类中所有声明的方法的实现。
子类实现接口(implements);
实现类需要提供接口中所有声明的方法的实现。
关系抽象类可以继承一个类和实现多个接口接口不能继承抽象类,但可以继承多个接口
局限只允许单继承接口没有限制
   
变量可以有普通变量只能是公共的静态的常量(默认public static final
构造器可以有构造器不能有构造器
访问修饰符抽象方法可以有publicprotecteddefault这些修饰符
不能用private、final、static修饰符
接口方法默认修饰符是public
添加新方法如果往抽象类中添加新的方法,可以给它提供默认的实现,而不需要改变现有的代码。如果往接口中添加方法,那么必须改变实现该接口的类。

通俗的讲,认为是要变化的东西,就放在实现中,不能放在接口中去,接口只是对一类事物的属性和行为更高层次的抽象。对修改关闭,对扩展(不同的实现implements)开放,接口是对开闭原则的一种体现。

所以接口的中的变量必须是公共的静态的常量(public static final)。

Java8中接口可以有默认函数:

interface Formula { 
	default double sqrt(int a) {
        return Math.sqrt(a);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值