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

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

简介:接口(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.抽象类当中可以有构造方法, 但是接口当中是不可以存在构造方法的

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


}


相关文章
|
6月前
|
Java
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
2021蓝桥杯大赛软件类国赛Java大学B组 完全日期 复杂遍历搜索
50 2
|
7月前
|
存储 设计模式 Java
软考考前准备之考场规则和注意事项
软考考前准备之考场规则和注意事项
64 0
|
7月前
|
定位技术 数据安全/隐私保护
保研夏令营、考研复试院校信息汇总表的模板与制作注意事项
保研夏令营、考研复试院校信息汇总表的模板与制作注意事项
|
云计算
阿里云认证的考试条件是什么?通过考试难不难?
阿里云的认证是现在信息通讯行业内的一个热门认证,很多人会通过考这门认证来获得进入阿里云的机会,或者是被阿里云的合作伙伴录取的机会。
698 1
|
云计算
阿里云认证多少分通过?考试难不难?
阿里云可以说是云计算行业内的龙头企业了,不仅和众多领域有所合作,而且合作的对象很多是业界大佬,进入阿里云也是很多毕业生的梦想。
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
699 1
抽签软件免费提供,代码开源,可用作抽奖、课堂抽背、游戏分组等活动场合,可以直接下载
PAT-2021年秋季考试 乙级 7-3 自定义判题程序 (20 分)
在每次允许插入、删除、修改一个字符的前提下,用最少的动作把一个字符串变成另一个字符串,是一道著名的可以用动态规划解决的问题。
116 0
|
算法 数据安全/隐私保护
软考加密类型题(7个历年类型题【答案在底部】选择题1分必得)
对称秘钥算法也叫:私钥、私有秘钥、共享秘钥。 非对称秘钥算法也叫:公钥、公开秘钥、数字签名。 还有消息摘要加密:MD5
263 0
软考加密类型题(7个历年类型题【答案在底部】选择题1分必得)
|
存储 C语言 索引
第十一周:结构类型
你会坚持下来的对吗?希望C语言不会成为你跨进编程世界的拦路虎,而是你的启蒙语言,梦的开始
86 0
|
云安全 存储 弹性计算
阿里云ace考试有什么用?想要通过需要掌握哪些方面知识?
阿里云公司作为阿里巴巴集团旗下的互联网公司,非常的知名,很多互联网从业人员都想要进入阿里云。通过了阿里云ace考试,获得了阿里云ace认证,就获得了阿里云公司的通行证。那么,阿里云ace考试有什么用?想要通过需要掌握哪些方面知识?
535 1
阿里云ace考试有什么用?想要通过需要掌握哪些方面知识?