栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

接口的相关知识

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

接口的相关知识

1、介绍

对规则进行声明

2、使用场景when

一个类中所有方法都是抽象的(那么该类的唯一作用就是声明规则),通常改写为接口

3、定义

interface 接口 ;implement 实现类

4、使用where

接口不允许实例化(那么,我们需要注意的就是它的实现类)。原因:接口里面全部是抽象方法,实例化没有意义(调用没有逻辑的抽象方法)

5、接口的实现类

5-1、重写所有抽象方法(推荐)

5-2、抽象类(不推荐的原因:抽象类也不能实例化)

6、接口中的成员成员特点

6-1、成员变量

只能是常量 默认被:public static final修饰(一般这样写,虽然这三个谁前谁后都没有关系)

public class Test{
    public static void main(String[] args){
       // InterA.NUM = 20;//报错,final 一旦赋值,不可修改
    }
}
public interface InterA{
    //int NUM = 10;
    public static final int NUM = 10;
}

6-2、成员方法

只能是抽象方法 默认被: public abstract修饰

package a
public interface InterA{
    public abstract void show();
   // void show(){}//报错,接口中只能是抽象方法
}
package b
    public class Test{
        public static void main(String[] args){
       InterA.show();//不报错,说明是public 的
    }
    }

6-3、构造方法

没有构造器

实现类的构造器中的super();属于Object的,因为Java中Object是所有类的祖宗

public interface InterA{
   // public InterA(){}//报错
    public abstract void show();
}

public class ImplA implements InterA{
    public ImplA(){
        super();//不报错哦,因为继承了Object
    }
}

7、类和接口之间的各种关系

7-1、类与类

继承关系,只允许单继承,不允许多继承,支持多层继承

7-2、类与接口

实现关系,可以单实现,也可以多实现,甚至可以既继承又实现

class A{}
interface InterA{}
interface InterB{}
class ImplA extends A implements InterA, InterB{
    
}

7-3、接口与接口

继承,允许多继承,单继承

8、接口和抽象类的区别(重点)

8-1、成员区别:

8-1-1、成员变量

接口:只能是常量 默认: public static final

抽象类:没有要求

8-1-2、成员方法

接口:只能是抽象方法 默认: public abstract

抽象类:既可以抽象方法,也可以有普通方法

8-1-3、构造方法

接口:没有构造方法

抽象类:有构造方法,方便子类调用

8-2、设计区别:

接口:规则(特性),进行扩展、组合

抽象类:提取共性

9、接口的版本升级

9-1、jdk8以后

9-1-1、接口中可以有默认方法

原因:解决接口升级的问题(需要更多的方法,但是不想影响实现类)

格式:public default void show(){},其中public可以省略,default不能省略,因为接口中的所有方法默认public

public default void show(){}
default void show(){}

注意:

默认方法,不是抽象方法,可以不被实现类重写

当实现类实现了多个接口,且有相同的默认方法时,必须重写

9-1-2、接口中可以有静态方法

格式:public static void work(){},其中public可以省略

public static void work(){}
static void work(){}

注意:

静态方法只能通过接口名进行调用,其实现类和实现类的对象不能调用

9-2、jdk9以后

9-2-1、接口中可以有私有方法

格式1:private void show(){},private不能省略

格式2:private static void show(){}

private void show(){}
private static void show(){}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1003672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号