Java接口

一、接口概念

1、概念:

接口相当于特殊的抽象类,定义方式、组成部分与抽象类类似。使用interface关键字定义接口。


2、特点:

  • 没有构造方法,不能创建对象。
  • 只能定义:公开静态常量、公开抽象方法。
    案例演示:自定义接口。

public interface MyInterface {    
    //接口中:只能定义公开的静态常量和公开抽象方法
    //没有构造方法、动态、静态代码块
    public static final int a = 10;
    public abstract void show();
}

3、和抽象类区别

1.相同点:

  • 不能创建对象。
  • 可以作为引用类型。


2.不同点:

  • 所有属性都是公开静态常量,隐式使用public static final修饰。
  • 所有方法都是公开抽象方法,隐式使用public abstract修饰。
  • 没有构造方法、动态代码块、静态代码块。

4、接口应用

1.接口是一种能力和约定。

Java为单继承,接口使得子类的对象可以被转换为除了父类之外的更多类型(即接口类型)。

实现类实现多个接口

2.实现接口的注意事项:

  • 任何类在实现接口时,必须实现接口中所有的抽象方法,否则此类为抽象类。
  • 实现接口中的抽象方法时,访问修饰符必须是public。
  • 同父类一样,接口也可声明为引用,并指向实现类对象。

二、接口多态

例:

public class Test {
    public static void main(String[] args) {
        //抽象类作为引用
        Animal a = new Dog();//将狗当做动物看
        a.eat();
        a.sleep();

        //接口作为引用   
        Swimmable s = new Dog();//将狗当做能游泳的看
        s.siwm();

        Dog dog = new Dog();//将狗当做狗的看
        dog.eat();
        dog.sleep();
        dog.siwm();
    }
}

三、接口与类的关系

1、类与类:

  • 单继承
  • extends 父类名称

2、类与接口:

  • 一个类可以实现多个接口,implements 接口名称1 , 接口名称2 , 接口名称n
  • 一个接口可以有多个实现类

3、接口与接口:

  • 多继承:一个接口可以继承多个接口
  • extends 父接口1 , 父接口2 , 父接口n

四、常量接口

将多个常用于表示状态或固定值的变量,以静态常量的形式定义在接口中统一管理,提高代码可读性。

例:public interface Constants {
    //QQ的状态    接口常量 --- > 枚举类型
    public static final int ZAI_XIAN = 100; //在线
    public static final int YIN_SHEN = 200; //隐身
    public static final int LI_XIAN = 300;  //离线
    public static final int Q_WO = 400;     //Q我
    public static final int MANG_LU = 500;  //忙碌
}

int num = 100;
switch (num) {
    case Constants.ZAI_XIAN:
        System.out.println("在线的代码");
        break;
    case Constants.YIN_SHEN:
        System.out.println("隐身的代码");
        break;
    case Constants.LI_XIAN:
        System.out.println("离线的代码");
        break;
    default:
        break;
}

五、接口设计思路

六、接口好处

  • 程序的耦合度降低。
  • 更自然的使用多态。
  • 设计与实现完全分离。
  • 更容易搭建程序框架。
  • 更容易更换具体实现。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值