Java基础 — 接口

变量

接口中的变量默认为 public static final 变量,并且只能是 public,用 private 修饰会报编译错误。

方法

Java8之前方法会被隐式的指定为  public abstract ,并且只能是 public abstract,其他修饰符都会报错。

在之后可以定义两类实体方法:

  • 定义静态方法

在接口中定义的静态方法,不是抽象的,具体实现的,可以直接使用接口名称调用。

public interface TestMethod {
    static void method() {
        /**
         * 1、定义一个静态的带有方法体的方法
         * 2、接口不能创建对象,调用静态方法不需要对象
         * 3、接口名调用
         */
        System.out.println("接口中静态方法");
 
    }

调用:

  public static void main( String[] args ) {
        /**
         * 接口名称,直接调用---TestMethod(接口名称)
         */
        TestMethod.method();
  }

 

  • 定义普通方法

在接口中还可以进行普通方法的定义,不过不是抽象,可以使用关键字default

//定义接口中默认方法
 
    /**
     * 不同于静态方法,默认方法是一个非静态方法
     * 对于非静态方法,只能通过对象进行调用
     * 但是接口是不能创建对象的名故而我们需要子类来实现接口
     */
    public default void  methodDefault(){
        System.out.println();
    }
}

调用:

//        使用子类对象,调用接口中的默认方法
        Inter8Impl inter8 = new Inter8Impl();
        inter8.methodDefault();
 
//        使用多态的特点,接口指向自己的实现类,调用对应的方法
        TestMethod i88 = new Inter8Impl();
        i88.methodDefault();
    }


  此外,值得注意的是:面向对象中,java只是支持单继承,不支持多继承,一个类只能继承一个类

  • 如果多个接口定义了同样的 static 方法,实现类实现这多个接口,是不可使用实现类名调用接口的方法。
  • 如果多个接口定义了同样的 default 方法,实现类实现这个多个接口,必须重写掉默认方法,否则编译失败。

总结

在接口中可以定义实现的方法体是java8的一大特性,可以定义多个实体方法,但是方法必须加上static或是default关键字。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值