Java学习笔记(19):接口的组成更新

接口的组成更新

一:常量

1.接口中的变量默认为常量(默认修饰为public static final)

二:抽象方法

接口中的方法默认为抽象方法(默认修饰为public abstract)

三:默认方法

首先,看下面这个接口:

public interface Myinterface {
    void one();
    void two();
}

假设该接口有多个实现类,如:

public class Myclass implements Myinterface{
    @Override
    public void one() {
        System.out.println("one");
    }

    @Override
    public void two() {
        System.out.println("two");
    }
}

如果我们需要在接口中再次添加方法,加入一个three()方法,那么显然Myclass类就会出错,因为我们没有在Myclass中重写three()方法,因此,我们需要使用默认方法修饰three()方法:
(注意:默认方法是带有方法体的)

public interface Myinterface {
    void one();
    void two();
    default void three(){
        System.out.println("three");
    }
}

默认方法不强制重写,但可以被重写,但是不能再加default:

public class Myclass implements Myinterface{
    @Override
    public void one() {
        System.out.println("one");
    }

    @Override
    public void two() {
        System.out.println("two");
    }

    @Override
    public void three() {
        System.out.println("重写的three");
    }
}

四:静态方法

静态方法由static修饰,只能被接口调用或者被接口中的方法调用,且静态方法不能被重写:

接口:
public interface Myinterface {
    void one();

    default void two(){
        System.out.println("默认方法");
    }

    static void three(){
        System.out.println("静态方法");
    }
}
实现类:
public class Myclass implements Myinterface{
    @Override
    public void one() {
        System.out.println("普通方法");
    }
}
测试类:
public class Mydemo {
    public static void main(String[] args) {
        Myinterface f = new Myclass();
        f.one();
        f.two();
        Myinterface.three();
    }
}
上一篇:两数之和


下一篇:Three.js杂记(九)—— 练习:地球