zoukankan      html  css  js  c++  java
  • 接口


    Ctrl+1:快速修复

    接口和类是同一个级别的概念
    Java的数据类型:基本数据类型和引用数据类型
    引用数据类型:类、接口、数组、枚举。。。

    1.如何声明一个接口
    语法格式:
    【修饰符】 interface  接口名【extends 父类】 implements 接口们{
    }
    2.接口的成员有哪些?
    JDK1.8之前
    (1)全局的静态的常量:public static final
    (2)公共的抽象的方法:public abstract

    JDK1.8之后,接口的语法有改动:
    增加了两类成员:
    (1)静态方法:public static,public可以省略,但是static不可以省略。
    通过“接口名.方法”来进行调用。
    说明:接口的静态方法不会继承到实现类,不能用接口的实现类的对象调用。
    (2)默认方法:public default,public可以省略,但是default不可以省略。
    通过“实现类的对象.方法名”进行调用。
    说明:实现类可以对接口的默认方法进行重写。

    默认方法的冲突问题:
    (1)当一个类实现了两个接口,这两个接口有方法签名相同的默认方法。
    方法签名:修饰符 返回值类型 方法名 (形参列表)
    如何解决?
    》保留其中一个接口的默认实现
    接口名.super.默认方法名(形参列表);
    》完全重写该方法
    (2)当一个类继承父类,又实现接口,这个父类中有与接口的默认方法的方法签名相同方法时
    》默认保留的是父类的
    》可以选择保留接口的默认实现
    接口名.super.默认方法(形参列表);
    (3)完全重写

    什么情况下用默认方法?
    当这个接口的某个抽象方法,在很多实现类中的实现代码是一样的,那么可以把这个实现挪到接口中,用默认方法进行实现。如果对该抽象方法不一样的实现的实现类,那么可以对该默认方法进行重写。重写的方法的default不要了。


    说明:接口没有构造器,代码块,除了全局的静态常量以外的普通的属性等。

    3.如何实现接口?
    用来被实现的。
    【修饰符】class 实现类 implements 接口们{
    }

    4.接口的特点
    (1)实现类在实现接口时,必须实现接口的所有的抽象方法,否则这个实现类就必须是个抽象类。
    (2)一个类可以同时实现多个接口
    (3)接口不能直接创建对象
    (4)接口可以与实现类的对象构成多态引用
    (5)一个类可以同时继承父类,又实现接口,但是要求,继承在前,实现在后。
    (6)接口与接口之间支持多继承

    类与类之间:继承extends
    类与接口之间:实现implements
    接口与接口之间:继承extends
    理解:
    父类:亲生父亲,只有一个
    接口:干爹,可以同时有很多个

  • 相关阅读:
    在bindingNavigator1中加入具有更好体验性的DateTimePicker
    static的初始化顺序 (转)
    C#数据结构求最大公约数和最小公倍数[辗转相除法]
    DataGridView控件显示行号
    C# 小票打印机 直接打印 无需驱动[转]
    Core Data 中遇到的一些问题
    字符指针不分配存储区,字符常量存储于静态数据区
    传送门
    Error Set
    实现类似iPhone通讯录新增名片,保存,之后可进行编辑操作的功能
  • 原文地址:https://www.cnblogs.com/1185937986-jili/p/12865368.html
Copyright © 2011-2022 走看看