首页 > 其他分享 >Day25:接口详解

Day25:接口详解

时间:2022-11-28 20:13:20浏览次数:46  
标签:Day25 接口 继承 详解 Jumpping 方法 public 实现

接口

1.1什么是接口

1.2接口的特点

  • 接口的关键字是interface

接口语句格式:public interface 接口名{}

public interface Jumpping{
   void jump();//接口的方法有且一定是抽象方法
}
  • 类与接口的关系是实现implements

格式:public class 类名 implements 接口名{}

public class Cat implements Jumpping{
    //实现类必须重写接口的所有的抽象方法
    @override
    public void jump(){
        System.out.println("猫跳高");
    }
}
  • 接口不能直接实例化,可以通过其实现类进行实例化

即参照多态的方式,通过实现类对象实例化。

多态的前提:有继承关系(实现)关系,有方法重写,有父类(接口)引用指向子类(实现类)对象

public class Application{
    public static void main(String[] args){
        //Jumpping j=new Jumpping();  接口不能直接实例化
        //需要通过多态的方式进行实例化
        Jumpping j=new Cat();
        j.jump();//多态形式的方法编译看左边,运行看右边
        //输出结果:猫跳高
    }
}
  • 接口的实现类要么全部重写接口的方法,要么本身为抽象类
//我们再建立一个狗实现类
/*public class Dog implements Jumpping{
    如果我们不想重写接口的方法,那么我们只有将实现类变为抽象类;但是成为抽象类以后,其子类还是需要重写接口的所有方法
}*/

1.3 接口的成员特点

成员特点即讨论其有没有成员变量、构造方法、成员方法

我们尝试在接口内加入成员变量、成员方法:

总结:

  • 接口中的属性均为常量、且为静态的,有着默认的修饰符:public static final
  • 接口中的成员方法都是抽象的;有着默认的修饰符:public abstract
  • 接口中没有构造器

注意:

接口不能实例化,只是通过其实现类实例化后,实现类对象的内存地址指向接口,接口就可以使用了。


1.4 类和接口的关系

类和类的关系:继承关系;只能单继承,不能多继承。

类和接口的关系:实现关系;可以单实现,也可以多实现,也可以在继承一个类的同时实现多个接口

接口和接口的关系:继承关系;可以单继承,也可以多继承


1.5 抽象类和接口的区别

成员区别:

抽象类:变量、常量、构造方法、抽象方法、非抽象方法

接口:常量、抽象方法

关系区别:

类与类:继承;单继承

类与接口:实现;单实现,多实现

接口与接口:继承;单继承,多继承

标签:Day25,接口,继承,详解,Jumpping,方法,public,实现
From: https://www.cnblogs.com/CQliuwei/p/16933470.html

相关文章

  • 010Prometheus配置文件中metric_relabel_configs详解
    Prometheus从数据源拉取数据后,会对原始数据进行编辑其中 ​​metric_relabel_configs​​​是Prometheus在保存数据前的最后一步标签重新编辑(relabel_configs)。所以,哪......
  • SQL语句执行顺序,select、from、where、group by、having、order by语句位置及功能详解
    在spl语句中的执行顺序:from→where→groupby→having→select→orderby第一步:from语句,选择要操作的表。第二步:where语句,在from后的表中设置筛选条件,筛选出符合条件的......
  • Cross-Origin Resource Sharing(CORS)详解,CORS详解,CORS原理分析
    Cross-OriginResourceSharing(CORS)详解,CORS详解,CORS原理分析Cross-OriginResourceSharing通常简称为:CORS它是一种机制,这个机制使用了一个额外的HTTP响应头来赋予当前us......
  • Mysql 连接参数 useAffectedRows 详解
    Mysql连接参数useAffectedRows详解Javamysql链接串:jdbc:mysql://mysql安装IP:3306/db_test?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertTo......
  • 介绍Spring名称生成策略接口BeanNameGenerator
    众所周知,Spring容器可以简单粗暴的把它理解为一个大大的Map,存储着容器所管理的所有的单实例对象。我们从使用getBean(StringbeanName)方法,根据bean名称就能获得容器内唯一......
  • 日志式文件系统(ext3)详解
    一、概述通常在系统运行中写入文件内容的同时,并没有写入文件的元数据(如权限、所有者及创建和访问时间),如果在写入文件内容之后与写入文件元数据之前的时间差里,系统非正......
  • C# 学习总结 之 类 、接口、多态、重载
     类、接口、多态、重载 名称解释定义范式类类是一种数据结构;类是现实对象或关系的模拟(抽象),包含静态属性和动态方法;类是具有相同或相似结构、操作和约束规则的对象集合。......
  • RecyclerView详解
    RecyclerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,但是直接把viewholder的实现封装起来,用户只要实现自己的viewh......
  • Elasticsearch索引数据大批量删除接口优化
    Elaticsearch索引数据大批量删除接口优化​​一、需求​​​​二、索引数据删除接口​​​​2.1使用到的elasticsearch核心接口​​​​2.2封装删除脚本​​​​2.3封装接口......
  • 数据分析八大模型:详解RFM模型
    一、RFM的基本思路RFM模型由三个基础指标组成:R:最近一次消费至今的时间F:一定时间内重复消费频率M:一定时间内累计消费金额 RFM模型里,三个变量的含义是很具体......