上周考试错题类型总结(接口型)

简介: 上周考试错题类型总结(接口型)

简介:接口(interface),在java当中是一个抽象方法的集合体,一个类通常通过来继承接口,从而实现接口当中所有的实现类

接口跟类,并不相同,是两个不同的概念,接口的实现往往需要借助于实现类,从而达成目的,在实现的时候,除非是一个抽象的类,否则

就要对于接口当中的所有方法,进行重新的定义.而类只是用来描述对象的属性以及相应的方法

1>接口与类的区别:

一:   接口通常都是不能实例化的,要想进行实现,就需要有实现接口的存在,实现类的存在, 重新定义接口当中所有的方法

二:   接口是没有构造方法的

三:   接口当中所有的方法都只能是抽象的方法:在抽象方法的基础上,前面的public abstract都已经被隐藏,省略,所以我们可以直接构造 void+

相应的方法名称即可;

 注!:在java1.8当中,接口被设计的可以进行构造默认方法,以及静态默认方法(原因:有时候需要对于接口进行更新换代,进行升级,但是如果在接口当中再次

      构建一个新的抽象方法,那么之后接口的实现类都要进行对于这个方法的重写,比较麻烦,我们选择可以直接在这个接口内部直接构建这个更新过后的方法,能够被

      直接的调用,这就是默认方法,以及静态方法的创造原因){

   1.默认方法(默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法)
 public interface Vehicle {
       default void print(){
          System.out.println("奥力给,干了兄弟们!");
           }
        }
默认方法当中的一些冲突:存在有两个不同的接口,但是这两个接口当中都有相同的默认方法,连带名称都一样
   for example:
    1:
    public interface Vehicle {
       default void print(){
          System.out.println("我是一辆车!");
       }
    }
  public interface Accent {
       default void print(){
          System.out.println("我是一辆大卡车!");
       }
    }

   方法1:如果要进行调用,我们可以自己构建一个方法,实现其中我们要进行使用的具体方法,对其进行重写

 public vehicle implacements Vehicle {
        public static void print(){
        super();//在这里会自动的调用,所以是可以直接的省略
        System.out.println("我才不是车!");
    }
    }

 方法2:第二种,我们也可以都进行继承,最后选择相应自己需要的进行调用:

   (在接口当中,是允许有一个子类都进行实现多个不同的接口的)

    Vehicle.draw();就可以直接进行调用,不再进行重写    
    public interface Vehicle {
           default void print(){
              System.out.println("我是一辆车!");
           }
        static void draw(){
        System.out.println("我天生喜欢美的东西");
        }

            }
        

        }

四:接口当中不能定义成员变量(除了 static 以及 final类型的)

五:接口并不是要被继承,而是将要被"实现"

六:接口是支持多继承的(一个儿子爹只能有一个(继承只能一对一),但是干爹可以有好多个(干爹指的就是接口))

2>接口特性:

1.接口当中的方法都是一个隐藏的抽象方法,在方法名称前面隐藏了 public abstract 所以规定方法的时候,直接

用void+方法名();就可以

2.接口当中可以存在有变量,成员变量也可以有,但是都已经在前面隐藏了,public static final 变量

3.接口当中的类在接口当中无法进行实现,只能够通过实现接口的类来进行重写(java8的默认方法以及静态方法除外,以及java9的一些新加特性)

3>抽象类和接口类的不同之处:

1. 抽象类中的方法可以有方法体,就是能实现方法的"具体功能"但是接口中的方法不行。

(方法体就是在大括号当中加入一些java的具体代码块, 进行对于代码的实现, 接口当中定义的抽象方法必须要外部的实现类全部都进行重写才行)

2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的。(并且在接口当中是进行隐藏的)

3. 接口中不能含有            ""静态代码块""        以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。

tips:静态代码块(随着类的加载而进行,并且只执行一次,之后进入回收站!)

是什么?

静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便""销毁"",它仅能初始化类变量,即static修饰的数据成员。

 

static{
    }

   ***意义就是不需要每一次的调用都给其进行初始化


同时,还存在有非静态代码块:

   {


   }

   ***在每一次创建对象的时候都会被调用一次



如何用?

   在静态代码块的中间加入需要写的代码即可


4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。

5.抽象类当中可以有构造方法, 但是接口当中是不可以存在构造方法的

(因为接口本身就是用来声明一种行为规范的, 按照定制的方法, 你需要对其进行执行, 不执行, 就是错误! "构造方法"    是用来在对象初始化前对对象进行一些预处理的,提供了实例化一个具体东西的入口。接口只是声明而已,不一定要进行什么初始化,就算要进行初始化,也可以到实现接口的那一些类里面去初始化。)


}


相关文章
|
4月前
L1-043 阅览室 (20 分)(在线模拟题)
L1-043 阅览室 (20 分)(在线模拟题)
48 0
|
3月前
|
Java
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
37 2
|
4月前
|
存储 设计模式 Java
软考考前准备之考场规则和注意事项
软考考前准备之考场规则和注意事项
50 0
|
4月前
|
小程序 JavaScript Java
基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)
基于Java的大学生心理健康答题小程序设计与实现(亮点:选题新颖、可以发布试卷设置题目、自动判卷、上传答案、答案解析)
80 0
|
云计算
阿里云认证多少分通过?考试难不难?
阿里云可以说是云计算行业内的龙头企业了,不仅和众多领域有所合作,而且合作的对象很多是业界大佬,进入阿里云也是很多毕业生的梦想。
|
存储 网络协议 编译器
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(3)
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(3)
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(3)
|
存储 缓存 安全
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(1)
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(1)
152 0
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(1)
|
存储 算法 编译器
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(2)
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(2)
124 0
【C语言深度剖析】— 史上最全关键字(爆肝半个月、数万字详解、考试必备)(2)
PAT-2021年秋季考试 乙级 7-3 自定义判题程序 (20 分)
在每次允许插入、删除、修改一个字符的前提下,用最少的动作把一个字符串变成另一个字符串,是一道著名的可以用动态规划解决的问题。
100 0
L1-043 阅览室 (20 分)(在线模拟题
L1-043 阅览室 (20 分)(在线模拟题
112 0
L1-043 阅览室 (20 分)(在线模拟题