一尘不染

为什么普通类可以完成相同工作时真正需要接口?

jsp

我一直想知道接口的实际用途。请检查以下代码。

interface Animal {
    public void eat();
    public void travel();
}


public class MammalInt implements Animal{

    public void eat(){
        System.out.println("Mammal eats");
    }

    public void travel(){
        System.out.println("Mammal travels");
    }

    public int noOfLegs(){
        return 0;
    }

    public static void main(String args[]){
        MammalInt m = new MammalInt();
        m.eat();
        m.travel();
    }
}

在上面的代码中,如果我从类声明中删除实现Animal,则代码仍然可以正常工作而没有任何区别。那么接口的实际用途是什么。?


阅读 188

收藏
2020-06-10

共1个答案

一尘不染

毫无疑问,即使没有界面,您的代码也可以正常工作,但是。实现一个接口可使类对其承诺提供的行为变得更加正式。接口在类和外部世界之间形成契约,并且该契约在编译时由编译器强制执行。如果您的类声称要实现一个接口,则在成功编译该类之前,该接口定义的所有方法必须出现在其源代码中。

例如,如果您有多个动物类,每个动物类都实现了动物,那么稍后您要更改动物接口的结构,则可以帮助您更轻松地更改所有动物标本的结构。

再举一个例子,假设您在一个组对象上工作,而领导者告诉您和其他人根据他给定的结构(接口)创建一些类,实现该接口可确保您正确使用所有方法名称和结构。如果领导以后认为班级的结构不好,他将更改界面,迫使您更改班级。

有关更多信息,请阅读什么是接口Unsandsand接口及其有用性。

2020-06-10