关注「Java视界」公众号,获取更多技术干货

接口(接口与抽象类的区别)

一、接口定义

接口可以理解为更彻底的抽象类,接口中的组成以抽象方法和全局常量为主(JDK1.8后也可以包含普通方法和静态方法)。定义如下:

interface ITest {
    public static final String MSG = "1111";
    public abstract String getMsg();
}
public class Demo {
    public static void main(String[] args) {
        
    }
}

(接口名前加上“I”,方便识别这是一个接口)

二、接口使用

  1. 接口需要被子类实现(implements),且一个子类可以实现多个接口;
  2. 子类(如果不是抽象类)要覆写接口中全部抽象方法;
  3. 接口对象需要子类对象向上转型进行实例化。

另外,接口主要用于描述一个公共的标准,所以接口的抽象方法都要用public修饰,且即使不写public,在接口中的抽象方法也默认是public的。子类覆写时,因为要求不低于父类的权限,也只能是public修饰。

三、接口与抽象类的区别

抽象类接口
1定义关键字abstractinterface
2组成构造、普通方法、静态方法、全局常量、普通成员、static方法抽象方法、全局常量、普通方法、static方法
3权限所有权限定义只能是public
4子类使用extends继承一个implements实现多个
5两者关系可以实现若干接口不允许继承抽象类,可继承多个接口
6使用

1.都要定义子类

2.子类都要覆写全部抽象接口

3.实例化都是通过子类向上转型实现

1)类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。
2)抽象类当中可以存在非抽象的方法,可接口不能且它里面的方法只是一个声名必须用public来修饰没有具体实现的方法。
3)抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static fainl)。
4)这一点也是最重要的一点本质的一点"抽象类是对象的抽象,然接口是一种行为规范"。
5)抽象类的成员的修饰符没有要求,和普通类一致(除抽象方法)。接口中的成员变量的修饰符一定是public static final,方法都是public abstract。
6)接口是可以多继承的。
7)抽象类不能产生对象的,但可以由它的实现类来声明对象。 在实现接口时,我们也常写一个抽象类,来实现接口中的某些子类所需的通用方法,接着在编写各个子类时,即可继承该抽象类来使用,省去在每个都要实现通用的方法的困扰。

posted @ 2022-06-25 14:03  沙滩de流沙  阅读(180)  评论(0编辑  收藏  举报

关注「Java视界」公众号,获取更多技术干货