点我

概述

接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,在根据具体的情况将方法写出

语法
  • interface 接口名{ 属性; 抽象方法;}
接口的实现
  • class 类名 implements 接口{自己的属性;自己的方法;必须实现的接口抽象方法}
接口的优势
  • 弥补了单类继承的不足,一个类可以同时实现多个接口
  • 让程序可以面向接口编程,灵活方便的切换各种业务实现
demo
package com.xbxaq.interface_;

public class Test {
    public static void main(String[] args) {
        Singer s1 = new A();
        s1.sing();

    }
}



class A extends Student implements Driver,Singer{
    @Override
    public void driver() {
        System.out.println("成为一名司机");
    }

    @Override
    public void sing() {
        System.out.println("成为一名歌手");
    }
}

class Student{
    public  Student(){
        System.out.println("我现在是个学生");
    }
}


interface Driver{
    void driver();
}

interface Singer{
    void sing();
}

image-20240326164704975

接口注意事项
  • 一个接口继承多个接口,如果多个接口中存在方法签名冲突,则此时不支持多继承
  • 一个类实现多个接口时,如果多个接口中存在方法签名冲突,则此时不支持多实现
  • 一个类继承了父类,又同时实现了接口,父类中和接口中有同名的默认方法时,实现类会优先选择父类的
  • 一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可
  • 接口不能被实例化
  • 接口中的所有方法是public方法,接口中的抽象方法是不可以用abstract修饰的
  • 一个普通类实现接口,必须将接口的所有方法都实现
  • 抽象类实现接口,可以不用实现接口方法
  • 一个类可以同时实现多个接口
  • 接口中的属性只能是final,并且是public、static、final修饰符
  • 接口中的属性访问形式为接口.属性名
  • 接口不能继承其他的类,但是可以继承多个别的接口
  • 接口的修饰符 只能是public和默认

jdk8新增接口方法

1、默认方法,必须使用default关键词修饰,默认会被public修饰,可以增加方法体,例如:default void test(){}

2、私有方法,必须使用private修饰(jdk9开始才支持),例如:private void test(){}

3、静态方法,必须使用static修饰,默认使用public修饰,例如:public static void test(){}

分类: JAVA

评论

-- 评论已关闭 --

目录