• Java中接口相关知识


    1.接口

    1.1接口概述

    接口就是一种公共的规范标准,只要符合标准,大家都可以通用

    Java中的接口更多的体现在对行为的抽象

    1.2接口的特点

    • 接口用关键字interface修饰,格式:public interface 接口名{}
    • 类实现接口用implements表示,格式:public class 类名 implements 接口名{}
    • 接口不能实例化,接口实例化可以参照多态的方式,通过实现类对象来进行实例化,这也叫做接口多态。
    • 接口的实现类要么重写接口中的所有抽象方法,要么是抽象类

    多态的形式:

    • 具体类多态
    • 抽象类多态
    • 接口多态

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

    接口:

    package com.itheima_02;
    //定义了一个接口
    //接口用关键字interface修饰,格式:public interface 接口名{}
    public interface Jumpping {
        public abstract void jump();
    }
    

    实现类1:

    package com.itheima_02;
    //类实现接口用implements表示,格式:public class 类名 implements 接口名{}
    public class Cat implements Jumpping {
        @Override
        public void jump() {
            System.out.println("猫跳高");
        }
    }
    

    实现类2:

    package com.itheima_02;
    
    public abstract class Dog implements Jumpping {
    //接口的实现类要么重写接口中的所有抽象方法,要么是抽象类
    }
    

    测试类:

    package com.itheima_02;
    
    public class JumppingDemo {
        public static void main(String[] args) {
            //接口不能实例化,接口实例化可以参照多态的方式,通过实现类对象来进行实例化,这也叫做接口多态。
           // Jumpping j = new Jumpping();   错误
            Jumpping j = new Cat();     //采用多态的形式
            j.jump();
        }
    }
    

    1.3接口的成员特点

    • 成员变量:(只能是常量,默认用修饰符public static final进行修饰)
    • 构造方法:(接口中没有构造方法,因为接口主要是对行为的抽象,是没有具有存在的,一个类如果没有父类,默认继承自Object类)
    • 成员方法:只能是成员方法,默认用public abstract修饰

    接口:

    package com.itheima_03;
    //接口
    public interface Inter {
       /*
       /成员变量:(只能是常量,默认用修饰符public static final进行修饰)
       所以int num = 10;和public final int num = 10;是一样的
        */
        public int num1 = 10;
        public final int num2 = 20;
    
        //public Inter(){}      报错:接口中没有构造方法,因为接口主要是对行为的抽象,是没有具有存在的
    
        //public void show(){}      报错:因为接口中的成员方法只能是抽象方法,默认用public abstract修饰
    
    }
    

    实现类:

    package com.itheima_03;
    
    public class InterImpl implements Inter {
        /*
    接口中没有构造方法,因为接口主要是对行为的抽象,是没有具有存在的,一个类如果没有父类,默认继承自Object类
    Object类是所有类的根,所有的类都直接或者间接的继承自Object类
    public class InterImpl implements Inter其实是public class InterImpl extends Object implements Inter的省略写法
        /
         */
    
    }
    

    1.4类和接口的关系

    • 类和类的关系:继承关系,只能单继承,但是可以多层继承
    • 类和接口的关系:实现关系,可以单实现也可以多实现,还可以在继承一个类的同时实现多个接口
    • 接口和接口的关系:继承关系,可以单继承也可以多继承

    1.5抽象类和接口的区别

    1.成员区别

    ​ 抽象类 变量,常量;有构造方法;有抽象方法也有非抽象方法

    ​ 接口 常量;抽象方法

    2.关系区别

    ​ 类与类 继承,单继承

    ​ 类与接口 实现,单实现和多实现

    ​ 接口与接口 继承,单继承和多继承

    3.设计理念区别

    ​ 抽象类 是对事物进行抽象,包括属性和行为

    ​ 接口 对行为抽象,主要是行为

  • 相关阅读:
    go 字符串转换
    GRU模型结构
    ElasticSearch实战系列八: Filebeat快速入门和使用---图文详解
    H5可视化编辑器(H5 Dooring)
    (转)如何防止Axios对我的请求参数进行编码?
    vue使用element-ui,如何给Label加标签
    vue中$router.push打开新窗口
    (转)webstorm配置svn
    打开gitee.com网站报错
    监控$route无效
  • 原文地址:https://www.cnblogs.com/icyhblog/p/14112023.html
Copyright © 2020-2023  润新知