17.JAVA编程之接口(重要)

一、接口的定义

interface接口名称{
全局常量;//不能定义变量
抽象方法;
}

二、接口示例代码

interface IEat{
    //public abstract void eat(); //接口中只能定义抽象方法
    //另一种写法
    void eat(); //接口中定义的方法没有声明修饰符,默认为public abstract
    //public static final int NUM =10;//在接口中定义一个常量
    //另一种写法
    int NUM = 10;  //常量简写形式
}

三、接口的概念

1.接口是一组行为的规范、定义,没有实现(JDK1.8默认方法)
2.使用接口,可以让我们的程序更加利于变化
3.接口是面向对象编程体系中的思想精髓之一
4.面向对象设计法则:基于接口编程

四、接口使用规则

1.定义一个接口,使用interface关键字
2.在一个接口中,只能定义常量、抽象方法,JDK1.8后可以定义默认的实现方法
3.接口可以继承多个接口:extends xxx,xxx,xxx
4.一个具体类实现接口使用implements关键字
5.一个类可以实现多个接口
6.抽象类实现接口可以不实现接口的方法
7.在接口中定义的方法没有声明访问修饰符,默认为public
8.接口不能有构造方法
9.接口不能被实例化
代码:

public class Demo {

    public static void main(String[] args) {
        Girl g = new Girl("晶晶");
        g.sleep();
        g.eat();
        g.run();
        g.print();
    }
}

interface IEat{
    //public abstract void eat(); //接口中只能定义抽象方法
    //另一种写法
    void eat(); //接口中定义的方法没有声明修饰符,默认为public abstract
    //public static final int NUM =10;//在接口中定义一个常量
    //另一种写法
    int NUM = 10;  //常量简写形式
    //在JDK1.8后新特性,可以被所有实现类继承
    public default void print()
    {
        System.out.println("打印");
    }
}

interface IRun{
    void run();
}

//接口之间可以多继承(注意:类只能单继承)
interface ISleep extends IEat,IRun{
    void sleep();
}

//具体类实现接口必须实现接口的所有方法
class Girl implements ISleep{
    private String name;
    public Girl(String name)
    {
        this.name = name;
    }
    @Override
    public void eat() {
        System.out.println("我是"+name+"我爱吃水果");
    }

    @Override
    public void run() {
        System.out.println("我爱运动");
    }

    @Override
    public void sleep() {
        System.out.println("我爱睡觉");
    }
}

运行效果:


image.png

你可能感兴趣的:(17.JAVA编程之接口(重要))