java基础学习 day48(接口,接口与抽象类的异同,接口中成员的特点,接口的各种关系)

1. 接口

  • 接口就是一种规则
  • 当多个类都需要定义相同规则时,才用接口,某个类的特殊需求不用定义接口

2. 接口与抽象类的异同

  • 接口是一种规则,是对行为的抽象
  • 抽象类,是对一类事物的抽象,一般用于父类
  • 在抽取共性方法的时候,由于方法体不统一,就定义了抽象方法,而抽象方法所在的类就是抽象类
  • 只有全部子类都有某个共性方法时,才可以在抽象父类中写对应的抽象方法。有些子类有,有些没有时,则可以用接口。

3. 接口的定义和使用

  • 接口用关键字interface来定义,大括号里写规则,即抽象方法
    public interface 接口名 {
    抽象方法
    }
  • 接口不能实例化,即不能创建接口对象
  • 接口和类之间是实现关系(实现类),通过implements关键字表示
    public class 类名 implements 接口名 { }
  • 接口的子类(实现类)
    a. 要么重写接口中的所有抽象方法(若实现了多个接口,则要重写所有接口中的所有抽象方法,若多个接口中有重名的方法,则重写一次就可,即重写一次就能重写全部重名的方法)
    b. 要么是抽象类

注意:

  • 接口和类的实现关系,可以单实现,也可以多实现
    public class 类名 implements 接口名1,接口名2 { }
  • 实现类还可以继承一个类的同时实现多个接口
    public class 类名 extends 父类 implements 接口1,接口2 { }

4. 接口中成员的特点

  • 成员变量
    a. 只能是常量
    b. 默认修饰符:public static final(默认即,不写,虚拟机也会自动加上)
  • 构造方法
    没有构造方法
  • 成员方法
    a. 只能是抽象方法
    b. 默认修饰符:public abstract

JDK7以前:接口中只能定义抽象方法
JDK8的新特性:接口中可以定义有方法体的方法
JDK9的新特性:接口中可以定义私有方法

5. 接口的各种关系

  • 类和类的关系:
    继承关系,只能单继承,不能多继承,但是可以多层继承
  • 类和接口的关系
    实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口(若实现了多个接口,则要重写所有接口中的所有抽象方法,若多个接口中有重名的方法,则重写一次就可,即重写一次就能重写全部重名的方法)
  • 接口和接口的关系
    继承关系,可以单继承,也可以多继承,还可以多层继承(若实现类实现了子接口,则要重写所有接口(包括父类)的所有方法)

猜你喜欢

转载自blog.csdn.net/u011453680/article/details/129333177