2018-02-11学习小结 - 抽象类与接口4

回顾

2.接口的使用原则

学习小结

2.接口的使用原则

范例

仅有default方法接口的使用:

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年2月11日 下午1:50:15
 * @Description TODO 仅有default方法接口的使用
 */
public class P333_13_6 {
    public static void main(String[] args) {
        InterfaceAB1 ab = new InterfaceAB1(); // 实例化子类对象
        ab.otherprint(); // 调用接口中的默认方法
    }
}

interface InterfaceA1 { // 定义一个接口
    default public void otherprint() { // 带方法体的默认方法
        System.out.println("print default1 methods only in InterfaceA!");
    }
}

class InterfaceAB1 implements InterfaceA1 { // 子类InterfaceAB实现接口InterfaceA
}

运行结果:

2018-02-11学习小结 - 抽象类与接口4_第1张图片
运行结果

子类继承多个接口的应用

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年2月11日 下午10:56:37
 * @Description TODO 子类继承多个接口的应用
 */
public class P334_13_7 {
    public static void main(String[] args) {
        X x = new X(); // 实例化子类对象
        A2 a = x; // 为父接口实例化
        B2 b = x; // 为父接口实例化
        a.print();
        b.get();
    }
}

interface A2 { // 定义一个接口A
    public static final String INFO = "Hello World."; // 全局常量

    public abstract void print(); // 抽象方法
}

interface B2 { // 定义一个接口B
    public abstract void get();
}

class X implements A2,B2 { // 一个子类同时实现了两个接口A,B

    @Override
    public void get() {
        System.out.println("你好!");
    }

    @Override
    public void print() {
        System.out.println(INFO);
    }
    
}

运行结果:

2018-02-11学习小结 - 抽象类与接口4_第2张图片
运行结果

先继承抽象类后实现接口

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年2月11日 下午11:31:58
 * @Description TODO 先继承抽象类后实现接口
 */
public class P336_13_8 {
    public static void main(String[] args) {
        X1 x = new X1(); // 实例化子类对象
        A3 a = x; // 为父接口实例化
        B3 b = x; // 为父接口实例化
        C c = x; // 为父接口实例化
        a.print();
        b.get();
        c.fun();
    }
}

interface A3 { // 定义一个接口
    String INFO = "Hello World!";

    void print(); // 抽象方法
}

interface B3 { // 定义一个接口
    public abstract void get();
}

abstract class C { // 抽象类
    public abstract void fun(); // 抽象方法
}

class X1 extends C implements A3, B3 {

    @Override
    public void get() {
        System.out.println("你好!");
    }

    @Override
    public void print() {
        System.out.println(INFO);
    }

    @Override
    public void fun() {
        System.out.println("你好!JAVA!!");
    } // 先继承后实现接口

}

运行结果:

2018-02-11学习小结 - 抽象类与接口4_第3张图片
运行结果

一个接口继承多个接口,语法:

interface 子接口名称 extends 父接口1,父接口2,...{
······
}

一个接口可继承多个接口

package com.Javastudy2;

/**
 * @author Y.W.
 * @date 2018年2月11日 下午11:53:20
 * @Description TODO
 */
public class P338_13_9 {
    public static void main(String[] args) {
        X2 x = new X2(); // 实例化子类对象
        A4 a = x; // 为父接口实例化
        B4 b = x; // 为父接口实例化
        C1 c = x; // 为父接口实例化
        D d = x; // 为父接口实例化
        a.print();
        b.get();
        c.fun();
        d.printD();
    }
}

interface A4 { // 定义一个接口
    String INFO = "Hello World!";

    void print(); // 抽象方法
}

interface B4 { // 定义一个接口
    public abstract void get();
}

abstract class C1 implements A4, B4 { // 抽象类实现了A4和B4接口
    public abstract void fun(); // 抽象方法一个有三个
}

interface D extends A4, B4 { // 同时继承两个接口
    public void printD();
}

class X2 extends C1 implements D { // 先继承后实现接口

    @Override
    public void print() {
        System.out.println(INFO);
    }

    @Override
    public void get() {
        System.out.println("你好!");
    }

    @Override
    public void printD() {
        System.out.println("接口D继承两个接口A4,B4");
    }

    @Override
    public void fun() {
        System.out.println("抽象类C1实现接口A,B");
    }

}

运行结果:

2018-02-11学习小结 - 抽象类与接口4_第4张图片
运行结果

思考

这小结对实现接口的范例还是比较多的。

很久没有学习Java,继续造起来。


记于2018年2月12日凌晨
By Yvan

你可能感兴趣的:(2018-02-11学习小结 - 抽象类与接口4)