2 java接口

java接口

1:接口定义的基本格式

什么是接口

  • 1:接口就是多个类的公共规范
  • 2:接口是一种引用数据类型,最重要的内容就是在其中的:抽象方法

如果定义一个接口的格式

public interface 接口名{  
       //接口内容  
}

需要注意

  • 1:换成了关键字interface之后,编译生成的字节码文件是:.java–> .class

  • 2:如果是java7,那么接口可以包含的内容有

    • 1:常量
    • 2:抽象方法
  • 3:如果是java8,还可以额外包含有

    • 3:默认方法
    • 4:静态方法
  • 4:如果是java9,还可以额外包含

    • 5:私有方法

2:接口中的抽象方法

抽象方法的解释

  • 定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫什么”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。

  • 所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。

在任何一个版本中,接口都能定义抽象方法

格式

public abstract 返回值类型 方法名称 (参数列表){

}

注意事项:

  • 1:接口中的抽象方法,修饰符必须是两个固定的关键字:public abstract
  • 2:这两个关键字的修饰符,可以选择省略

使用抽象方法

  • 1:接口不能直接使用,必须有一个实现类来实现该接口

    • 格式
		- public class 实现类名称  implements 接口名称{
    //.....
    }

}

  • 2:接口的实现类必须复写(实现)接口中所有的抽象方法。

    • 实现

      • 去掉abstract关键字,加上方法体大括号
  • 3:创建实体类的对象,进行使用

  • 注意事项

    • 如果实现类并没有覆盖重写接口中的所有的抽象方法,那么这个实现类就必须是抽象类

3:接口中的默认方法

格式

  • public default 返回值类型 方法名称(参数列表){
    方法体
    }

规则

  • 1.默认方法使用 default 关键字,一个接口中可以有多个默认方法。
    2.接口中既可以定义抽象方法,又可以定义默认方法,默认方法不是抽象方法。
    3.子类实现接口的时候,可以直接调用接口中的默认方法,即继承了接口中的默认方法。
    4.接口中同时还可以定义静态方法,静态方法通过接口名调用。

使用

  • 1:接口的默认方法,可以通过接口实现类对象,直接调用。
    2:接口的默认方法,也可以被接口实现类进行覆盖重写

接口的默认方法是为了干嘛

  • 接口中定义默认方法是为了解决:
    假如我们定义了一个接口,里面已经有一个抽象方法。
    然后一个工具类已经实现了接口,并且已经进行了复写抽象方法
    现在要在接口中又新添加一个方法,为了防止工具类被重写(因为工具类已经有了很多的业务),如果进行重写。可能会出错,所以有了接口中的默认方法
    工具类也可以去重写接口中的默认方法。

4:接口中的静态方法

格式

  • public static 返回值类型 方法名称(参数列表){
    方法体
    }

注意事项

  • 不能通过接口的实现类的对象来调用接口中的静态方法

正确用法

  • 通过接口名称

    • 直接调用其中的静态方法
  • 格式

    • 接口名称.静态方法名(参数)

5:接口中的私有方法

格式

  • 普通私有方法,解决多个默认方法之间代码重复问题

    • private 返回值类型 方法名称(参数列表){
      方法体
      }
  • 静态私有方法,解决多个静态方法之间代码重复问题

    • private static 返回值类型 方法名称(参数列表){
      方法体
      }

作用

  • 1:我们应该使用私有修饰符(private)来定义这些方法。
    2:我们不能同时使用私有修饰符(private)和abstract来定义这些方法。
    3:“私有”方法意味着完全实现的方法,因为子类不能继承并覆盖此方法。
    4:“抽象”方法意味着无实现方法。这里子类应该继承并覆盖此方法。
    5:私有方法必须包含方法体,必须是具体方法。
    6:这些接口私有方法仅在该接口内是有用的或可访问的。我们无法从接口访问或继承私有方法到另一个接口或类。

6:接口中的常量

格式

  • public static final 数据类型 常量名称 = 数据值

注意事项

  • 1:接口当中的常量,可以省略public static final,注意,不写也照样是这样
  • 2:接口当中的常量,必须进行赋值,不能不赋值
  • 3:接口常量的名称,使用完全大写的字母,用下划线进行分割(推荐命名规则)
  • 4:一旦赋值就不能进行修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值