Java入门5--接口基础

10 篇文章 0 订阅
6 篇文章 0 订阅

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.一个接口继承多个接口时,如果多个接口中存在规范冲突则不能多继承。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值