• Java中的接口


    接口的基础语法

    • 接口:
      1、接口也是一种"引用数据类型",编译后也是一个字节码文件;
      2、接口是完全抽象的(抽象类是半抽象);或者也可以说接口是特殊的抽象类。
    • 接口的定义和语法
      1、语法:
      [修饰符列表] interface 接口名{}
      2、接口支持多继承,一个接口可以继承多个接口。
    interface C extends A, B {
    }
    
    • 接口中只包含两部分内容(只有这两部分):
      一部分是:常量
      一部分是:抽象方法
    • 在接口中
      1、所有的元素都是public修饰的(都是公开的);
      2、抽象方法定义时:public abstract修饰符可以省略;
    //public abstract int sum(int a, int b);
    int sum(int a, int b);
    //public abstract修饰符可以省略
    

    3、方法都是抽象方法,所以接口中的方法不能有方法体。
    4、接口中的常量
    接口中随便写一个变量就是常量

    //常量
    //public static final double PI = 3.1415926;
    double PI = 3.1415926;/*public static final可以省略,
    但不代表不存在,所以这里的PI还是一个常量*/
    

    类实现接口

    • 接口的基础语法:
      1、类和类之间叫做继承,类和接口之间叫做实现。
      2、仍然可以将"实现"看做"继承"。
      继承使用extends关键字完成;
      实现使用implements关键字完成。
      3、当一个非抽象的类实现接口的话,必须将接口中所有的对象方法全部实现(覆盖、重写)。
      4、实现时必须加上public(权限只能更高,不能更低)。
    package com.zyh.jieKou;
    public interface MyMath{
        int sum(int a, int b);
        int sub(int a, int b);
        }
    
    package com.zyh.jieKou;
    class MyMathImpl implements MyMath{
        public int sum (int a, int b){
            return a + b;
        }
        public int sub (int a, int b){
            return a - b;
        }
    }
    
    • 一个类可以同时实现多个接口
      弥补了java中类和类只支持单继承的缺陷。
    • 关于接口之间的强转
      1、接口和接口之间在进行强制类型转换的时候,没有继承关系,也可以强转。(调用其它接口中的方法,需要转型->接口转型)
      2、但是一定要注意,运行时可能会出现classCastException异常。例如:
      接口A和接口B虽然没有继承关系,但是写代码的时候可以互转。编译器没意见,但是运行时可能出现: ClassCastException
    • 继承和实现都存在时
      extends关键字在前;implements关键字在后。

    接口在开发中的作用

    • 类似于多态在开发中的作用(多态:面向抽象编程,不要面向具体编程。降低程序的耦合度,提高程序的扩展力。)
    • 接口可以解耦合
      任何一个接口都有调用者和实现者;
      接口可以将调用者和实现者解耦合;
      调用者面向接口调用;
      实现者面向接口编写实现。

    类和类之间的关系

    • is a、has a、like a
      1、is a:
      Cat is a Animal (猫是一个动物)凡是能够满足is a的表示"继承关系”。
      A extends B
      2、has a
      He has a Pen (他有一支笔)凡是能够满足has a关系的表示"关联关系",关联关系通常以"属性"的形式存在。
      A{
      B b;
      }
      3、like a
      Cooker like a FoodMenu (厨师像一个菜单一样)凡是能够满足like a关系的表示"实现关系",实现关系通常是:类实现接口。
      A implements B

    抽象类和接口有什么区别?

    • 只说语法上的区别,至于以后抽象类和接口应该怎么进行选择,通过后面的项目去体会/学习。
    • 1、抽象类是半抽象的;
      接口是完全抽象的。
      2、抽象类中有构造方法;
      接口中没有构造方法。
      3、接口和接口之间支持多继承;
      类和类之间只能单继承。
      4、一个类可以同时实现多个接口;
      一个抽象类只能继承一个类(单继承)。
      5、接口中只允许出现常量和抽象方法
      注:以后接口使用的比抽象类多,一般抽象类使用的还是少。接口一般都是对“行为"的抽象。
  • 相关阅读:
    如何利用WGET覆写已存在的档案
    linux 脚本返回值
    ubuntu的配置网络
    非交互模式修改Ubuntu密码的命令
    [zz]python多进程编程
    [zz]linux修改密码出现Authentication token manipulation error的解决办法
    [zz]4.1.5 进程的处理器亲和性和vCPU的绑定
    vcpu
    非交互式调用交互式程序
    HDOJ_ACM_饭卡
  • 原文地址:https://www.cnblogs.com/yu011/p/12632718.html
Copyright © 2020-2023  润新知