Java入门5--接口基础

JDK8之前

接口概述、特点

接口用关键字interface来定义,格式如下

//声明一个借口,体现一种规范,规范一定是公开的。

public interface InterFaceDemo{
    
    
	//在接口中,public final可以省略不写。
	//常量
	public static final String NAME_INFO="K";
	String ID_INFO="123";
	
	//抽象方法
	//在接口中,public abstract可以省略不写。
	public abstract void run();
	void eat();
}

接口的基本使用

接口是用来被类实现(implements)的,实现接口的类称为实现类。实现类可以理解成所谓的子类。
接口可以被类单实现,也可以被类多实现。

public interface law {
    
    
    public void L();
}
public interface SportMan {
    
    
    void run();
    void competition();
}
public class pingpong implements SportMan,law{
    
    
    private String name;

    public pingpong(String name) {
    
    
        this.name = name;
    }

    @Override
    public void run() {
    
    
        System.out.println(name+"run");
    }

    @Override
    public void competition() {
    
    
        System.out.println(name+"competition");

    }

    @Override
    public void L() {
    
    
        System.out.println(name+"obey");
    }
}

一个类实现接口,必须重写完全部接口的全部抽象方法,否则这个类需要定义成抽象类。

接口的多继承

作用:规范合并,整合多个接口为同一个接口,便于子类实现。

public interface law {
    
    
    public void L();
}
public interface People {
    
    
    void eat();
}
public interface SportMan extends law,People{
    
    
    void run();
    void competition();
}
public class pingpong implements SportMan{
    
    
    private String name;

    public pingpong(String name) {
    
    
        this.name = name;
    }


    @Override
    public void eat() {
    
    

    }

    @Override
    public void run() {
    
    

    }

    @Override
    public void competition() {
    
    

    }
    
    @Override
    public void L() {
    
    

    }
}

JDK8开始新增方法

默认方法

default修饰,实现类对象调用

public interface test {
    
    
    default void run(){
    
    
        System.out.println("run");
    }
}

静态方法

static修饰,必须用当前接口名调用

public interface test1 {
    
    
    static void  inadrr(){
    
    
        System.out.println("inadrr");
    }
}

class test2 implements test1{
    
    

}
class T{
    
    
    public static void main(String[] args) {
    
    
        test2 s=new test2();
        test1.inadrr();
        //s.inadrr();//报错

    }
}

私有方法

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

public interface test {
    
    
    default void run(){
    
    
        System.out.println("run");
        go();;
    }
    private void go(){
    
    
        System.out.println("go");
    }
}

总结

1.接口不能创建对象
2.一个类实现多个接口,多个接口中有同样的静态方法不冲突,因为接口的静态方法只能用接口调用。
3.一个类既继承了父类又实现了接口,父类中和接口中同名方法,默认用父类。

class A extends B implements C{
    
    
}

4.一个类实现了多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写该方法就可以。
5.一个接口继承多个接口时,如果多个接口中存在规范冲突则不能多继承。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46002001/article/details/124910072