Java第一篇:为什么是接口?

好家伙,

 

写了一道Java作业:

 

 一道简单的接口练习题

 

而答案也比较简单

 

public class Demo1 {

    public static void main(String[] args) {
        Circle cir = new Circle();
        Rectangle rec = new Rectangle();
        cir.setR(4);
        rec.setLength(3);
        rec.setWidth(2);
        System.out.println("面积为:"+cir.area()+"\t周长为"+cir.perimeter());
        System.out.println("面积为:"+rec.area()+"\t周长为"+rec.perimeter());

    }
}
//定义接口
interface IShape1{
    public abstract double area();
}
interface IShape2{
    public abstract double perimeter();
}
//定义类
class Circle implements IShape1,IShape2{
    static final double pl=3.14;
    double r;
    public double getR() {
        return r;
    }
    public void setR(double r) {
        this.r = r;
    }
    public double area() {
        return pl*r*r;
    }
    public double perimeter(){
        return 2*pl*r;
    }
}
class Rectangle implements IShape1,IShape2{
    double length;
    double width;
    public double getLength() {
        return length;
    }
    public void setLength(double length) {
        this.length = length;
    }
    public double getWidth() {
        return width;
    }
    public void setWidth(double width) {
        this.width = width;
    }
    public double area() {
        return width*length;
    }
    public double perimeter(){
        return 2*(width+length);
    }
}
View Code

 

 

那么问题来了,

 

接口存在的意义是什么?

 

 

 (他好像什么都说了,又好像什么都没说)

 

看到了一个很棒的解释:

 

接口的作用就是把使用接口的人和实现接口的人分开,

实现接口的人不必要关心谁去使用,而使用接口的人也不用关心实现的细节。

 

来自:java中接口的意义 - 简书 (jianshu.com)

举个例子:

我的笔记本的触摸板实在是太难用了,我希望能外接一个鼠标,

而这个鼠标使用统一的usb插头,那么我把这个鼠标的插口插到接口中,

就可以使用鼠标了

 

那么接口的意义就是:

(我给你一个用我的方法)

1.规范性:

如果一个项目比较庞大,那么就需要定义一些主要的接口,

这些接口不仅告诉开你需要实现哪些业务,而且也将命名规范限制住了
 
接口为类提供类规范:为哺乳动物定义speak方法,那么猫和狗的叫都是speak方法了
不会说出现,狗是汪汪叫,而猫是喵喵叫

再比如,我给笔记本接鼠标,接键盘,都是usb口的,二笔记本也提供了多个usb口,
我能插了就用,
 
而不是多个HDMI口或是雷电口而导致接不了用不了,这就是规范了

2.拓展性:

比如有一个类,实现了某个功能,突然有一天,发现这个类满足不了需求了,

然后又要重新设计这个类,给加方法,加特技,
 
我的猫,必须不但要会叫,还要会唱跳rap篮球,还要会空中翻跟斗
 
我的狗,也要会叫,还要会唱跳rap篮球,还要会空中翻跟斗
 
那么我用接口去为他们设计这些方法,拓展性更强
 
又比如我的笔记本屏幕好小,满足不了我了,我要外接一个大显示屏,这便是拓展了
 

3.便于维护:

出bug了,可以按着接口功能来一个个改,

(你定义接口接口的时候肯定要确定这个接口是负责干嘛的)

 

这个好理解,鼠标坏了,修鼠标,或者换一个,

 

 

4.安全:就是安全,

 

 

(新人浅薄理解,欢迎指正)

posted @ 2022-05-10 00:28  养肥胖虎  阅读(106)  评论(0编辑  收藏  举报