接口~~~

一.认识接口

写法:

public interface A {
    //成员变量(常量)
    String SCHOOL-NAME-="bbbb";
    
    //成员方法(抽象方法)
    void a();
}

使用:

A.Java(接口)

public interface A {
    //成员方法(抽象方法)
    void a();
}

B.Java

public class B implements A {

   @Override
    public void a(){
   }

}

二.接口的好处

1.弥补了类单继承的不足,一个类同时可以实现多个接口

2.让程序可以面向接口编程,这样程序员就可以灵活方便的切换各种业务实现

 class B  {
  public void bbb(){
  }
}

 class C extends B implements A,D{
     
    public void bbb(){
    }
    
    @Override
     public void aaa(){
    }  
    
   @Override
     public void ddd(){
   }
   
}

interface A{
     void aaa();
}

interface D{
     void ddd();
}

三.接口新增方法

默认方法:使用default修饰,使用实现类的对象调用

静态方法:static修饰,必须用当前接口名调用

私有方法:private修饰,jdk9才开始有,只能在接口内部被调用

它们都默认被public修饰

public interface User {
    //1.默认方法(实例方法):使用default修饰,默认会被加上public修饰
    //注意:只能使用接口的实现类对象调用
    default void text1(){
    }

    //2.私有方法:必须用private修饰,只能在同类中被调用
    private void text4(){
        
    }

    //3.类方法(静态方法):使用static修饰,默认会被加上public修饰
    //注意:只能使用接口的实现类对象调用
    static void text3(){
    }
}

目的:增强了接口的能力,更便于项目的扩展和维护

四.接口的多继承(一个接口可以同时继承多个接口,便于实现类去实现)

interface AA{void text1();}
interface BB{void text2();}
interface CC{}
interface DD extends AA,BB,CC{}
class EE implements DD{
    
    @Override
    public void text1() {
    }

    @Override
    public void text2() {
    }
}

五.接口的其他注意事项

1.一个接口继承多个接口,如果多个接口中存在方法签名冲突,则此时不支持多实现

interface A{  void text1();   }
interface B{  String text2();  }
interface C extends A,B {  }  //报错

2.一个类实现多个接口,如果多个接口中存在方法签名冲突,则此时不支持多实现

interface A{  void text1();   }
interface B{  String text2();  }
class C implements A,B {  }  //报错

3.一个类继承了父类,又同时实现了接口,父类中和接口中有同名的默认方法,实现类会优先用父类

public class Text2 {
    public static void main(String[] args) {
zi z=new zi();
z.run();
    }
}
 class fu{
    public void run(){
        System.out.println("父类的run方法执行了");
    }
 }

interface it{
    default void run(){
        System.out.println("it的run方法执行了");
    }
}
class zi extends fu implements  it{  //父类的run方法执行了

}

4.一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可(即用自己写出来的方法)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值