接口

百知教育学习 -胡鑫喆 -接口

  • 接口 :特殊的抽象类

    • 1.属性都是公开静态常量 public static final 三个修饰符可以不写int A=10
    • 2.方法都是公开抽象方法 public abstract 两个也可以不写void m1();
    • 3.没有构造方法,不会提供默认也不能自己写。 所以同样内容的类.class文件大小比接口.class文件多,多了默认的构造器
  • 类和接口编译都会生成.class文件 共有四种编译会生成.class文件,分别是 标注、枚举、类、接口

  • 实现接口 implements:

    • 举例 class MyClass implements IA{} MyClass叫做接口的实现类

    • 一个类实现接口,如果这个类不希望成为抽象类,就必须实现接口中所有的抽象方法

      • interface IB{

        int A=10;

        double B=2.50;

        void m1();

        void m2();

        }

        class MyClass implements IB{

        public void m1(); //接口的实现类中 接口方法的实现 的修饰符必须是public

        public void m2();

        }

  • 接口之间可以定义多继承关系

    一个类在继承另外一个类的同时,还能实现多个接口class MyClass extends IA implements IB,IC{}


  • 多继承的复杂性:

    • 子类引用可以直接赋值给父类引用
    • 父类引用需要强转才能赋值给子类引用
    • 没有继承关系的两种类型之间不能强转赋值
      • 在这里插入图片描述
    • 强转的两种类型中,如果包含接口类型,强转代码一定编译通过
      • 在这里插入图片描述
  • 接口并不是为了多继承而出现的

  • 耦合 : 指的是对象与对象之间的关系 关系松散叫做弱耦合 关系紧密叫做强耦合

    java接口就是为了实现面向对象的弱耦合性

    接口作为标准,使接口的使用者和接口的实现者分离,实现弱耦合关系。接口的好处:利于分工,利于维护

    A–>B强耦合 A—>L(接口)—>B 弱耦合

  • 接口回调:程序员负责实现接口,从而实现接口中的方法,而不用关心方法何时被谁调用


  • 普通接口

  • 常量接口:没有抽象方法

    • interface Const{

      int A=10;

      double B=2.5;

      } 调用就用Const.A;

  • 空接口(标记接口):interface Empty{} 没有抽象方法

    • class Animal{}

      class Dog extends Animal implements Pet{}

      class Cat extends Animal implements Pet{}

      class Tiger extends Animal implements Pet{}

      class Fish extends Animal implements Pet{}

      interface Pet{} 标记接口用来标记某个类


  • 缺省适配模式 :提供一个接口还有配套的抽象方法

    你有两种选择

    一、继承抽象类:1.缺点:你这个子类失去继承的机会。2.优点:你可以挑自己有用的方法实现,没实现的还默认为抽象类中的方法

    二、连接接口: 1.缺点:无论你是否需要里面所有的方法,你都必须重写 2.优点:你还有一次继承机会,可以继承别的类

    • interface IA{

      void m1();

      int m2();

      String m3();

      }

      abstract class AbstractA implements IA{

      public void m1(){}

      public int m2(){

      return 0;

      }

      public String m3(){

      return null;

      }

      }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值