接口---java自学

接口

接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来

语法:
interface 接口名{
//属性
//方法(在接口中,抽象方法,可以省略abstract关键字)
//在jdk8后,可以有默认实现方法,需要使用default关键字修饰default public void hi(){}
//在jdk8后,可以有静态方法public static void hi(){}
}

如果一个类 implements 实现 接口
需要将该接口的所有抽象方法都实现
class 类名 implements 接口{
//自己的属性
//自己的方法
//必须实现的接口的抽象方法
}

小结:接口中可以有 抽象方法,默认方法,静态方法

接口使用细节
1.接口不能被实例化
2.接口中所有的方法是public方法,接口中的抽象方法,可以不用abstract修饰
3.一个普通类实现接口,就必须将该接口的所有方法都实现
4.抽象类实现接口,可以不用实现接口的方法
5.一个类同时可以实现多个接口
6.接口中的属性,只能是final的,而且是public static final修饰符 比如: int a = 1;实际上是 public static final a = 1;(必须初始化)
7.接口中属性的访问形式是:接口名.属性名
8.一个接口不能继承其他的类,但是可以继承多个别的接口 interface A extends B,C{}
9.接口的修饰符 只能是 public 和默认

接口和继承

子类继承了父类,就自动的拥有了父类的功能
如果子类需要扩展功能,可以通过实现接口的方式扩展
可以理解 实现接口 是 对java 单继承机制的一种补充

接口和继承解决的问题不同

继承的价值主要在于:解决代码的复用性和可维护性
接口的价值主要在于:设计,设计好各种规范(方法),让其它类去实现这些方法

接口比继承更加灵活

继承满足的是 is-a的关系,而接口只需要满足like-a的关系

接口在一定程度上实现代码的解耦(接口规范性+动态绑定)

接口的多态特性

1.多态参数
2.多态数组
3.接口存在多态传递现象

public class InterfacePolyPass {
    public static void main(String[] args) {
        //接口类型的变量可以指向,实现了该接口的类的实例对象
        IG ig = new Teacher();
        //如果IG继承了IH接口,而Teacher类实现了IG接口
        //那么,实际上就相当于Teacher类也实现了IH接口
        IH ih = new Teacher();
    }
}
interface IH{
    void hi();
}
interface IG extends IH{}
class Teacher implements IG{
    @Override
    public void hi() {
        
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值