JJJJJava接口

2019-08-13  本文已影响0人  南在南方i

接口 interface

Java接口是一系列方法的声明,是一些方法特征的集合
一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为

接口可以理解为一种特殊的类,里面全部是由全局常量和公共的抽象方法所组成。接口是解决Java无法使用多继承的一种手段,但是接口在实际中更多的作用是制定标准的。或者我们可以直接把接口理解为100%的抽象类,既接口中的方法必须全部是抽象方法

特点

就像一个类一样,一个接口也能够拥有方法和属性,但是在接口中声明的方法默认是抽象的(即只有方法标识符,而没有方法体)

为什么使用接口

接口的用法实现

实例

/**
 * 利用接口做参数,写个计算器,能完成加减乘除运算。
 * (1)定义一个接口Compute含有一个方法int computer(int n, int m)。
 * (2)设计四个类分别实现此接口,完成加减乘除运算。
 * (3)设计一个类UseCompute,类中含有方法:public void useCom(Compute com, int one, int two),
 *      此方法能够用传递过来的对象调用computer方法完成运算,并输出运算的结果。
 * (4)设计一个主类Test,调用UseCompute中的方法useCom来完成加减乘除运算。
 *
 */
public class Test2 {
    public static void main(String[] args){
        UseComper useComper = new UseComper();
        useComper.useCom(new Add(),12,6);
        useComper.useCom(new Sub(),12,6);
        useComper.useCom(new Mul(),12,6);
        useComper.useCom(new Div(),12,6);
    }
}

interface Computers{
    int computers(int n,int m);
}

class Add implements Computers{
    @Override
    public int computers(int n, int m) {
        System.out.println("Add:" + (n + m));
        return 0;
    }
}

class Sub implements Computers{
    @Override
    public int computers(int n, int m) {
        System.out.println("Sub:"+(n-m));
        return 0;
    }
}

class Mul implements Computers{
    @Override
    public int computers(int n, int m) {
        System.out.println("Mul:"+(n*m));
        return 0;
    }
}

class Div implements Computers{
    @Override
    public int computers(int n, int m) {
        System.out.println("Div:"+(n/m));
        return 0;
    }
}

class UseComper{
    public void useCom(Computers com, int number1, int number2){
        int result = com.computers(number1,number2);
        System.out.println(result);
    }
}

重点

接口的通俗理解(借鉴)

前面我们讲多态的时候用“空调”——“遥控器”的方式去理解多态,实际上在上面的的几个重点中的第一条讲的也是多态的实现,比如,我们可以把“节能”作为一种标准,或者说节能就是一个“接口”,这个接口中有一个方法,叫做变频方法,任何空调,如果要称得上叫做节能空调的话,那么必须实现“节能”这个接口,实现“节能”这个接口,也就必须实现“节能”接口中规定实现的“变频”方法,这样才算是真正的实现了“节能”这个接口,实现了“节能”这个功能。
当某个空调实现了“节能”接口后,这个空调就具备了节能的功能,那么我们也可以不用空调类的引用指向空调对象,我们可以直接使用一个“节能”接口类型引用的“遥控器”去指向“空调”,虽然这个“遥控器”上面只有一个按键,只有一个“变频”的方法,但是“遥控器”所指向的空调是实现了“节能”这个接口的,是有“变频”方法的实现的,我们用这个只有一个“变频”方法的遥控器去命令空调调用“变频”方法,也是行得通的


PS.

渐渐摆脱最开始的迷茫,寻找到适合自己的学习方式,将一个个小的知识点进行拆分后实际运用并在熟悉后相融合

上一篇下一篇

猜你喜欢

热点阅读