Java类里面可以创造方法,为什么还要用接口里的方法在类里面实现呢?

类里面可以创造方法,为什么还要用接口里的方法在类里面实现呢?
有的回答是:“ 你实现了某个接口,就必须在此类里覆盖接口里的所有方法,应为在接口里的所有方法都是抽象的,所以在子类里必须复写。
接口感觉就是一些类似的事物共有的域或方法,就像有一个接口animal,里面有个方法e at,然后你每一个动物的类,都去实现这个接口,因为每个动物都有各自的饮食方法,这样就增加了代码的复用性,不要再每一动物类里都要重新想一个名字来定义eat。
接口在大型程序里都是要用到的,很重要 ”

不能在不同的类里面都定义eat方法吗?

不管他们怎么回答,接口和继承都是为了让我们代码又更多的可读性,当然可以都定义eat不冗余了嘛,我们设计框架的时候都是把相同的行为抽象出来,放在一个公共的类/接口中,让其他类继承,这样代码看起来整齐

只是一种习惯和规范,不是强制要求,保证一个里氏替换和依赖倒转原则

一个有A行为的东西,就应该能被当做A使用,增加程序灵活性

  • 以下回答由chatgpt基于相关博客总结生成:

    接口的作用是什么?

    接口是一种规范,通过使用接口,我们可以定义出类应该做什么,而不是如何做。它有以下作用:

    1. 定义了类需要实现的方法,从而强制实现类遵循某种规范,提高代码的稳定性和可维护性。
    2. 提供了一种多态的方式,能够避免使用某个类的具体实现来编写代码。
    3. 向外部提供了一致性接口,而不用担心实现的细节,便于组合和扩展。

    如何提高代码的复用性?

    代码的复用性是指尽可能地减少代码冗余,将一些通用的代码模块封装起来,方便其他部分的代码复用。提高代码的复用性有以下几个方面:

    1. 封装通用模块,将重复利用的共性功能抽象成父类或接口,供子类或具体实现类继承或实现,例如Java中的多态,可以提高代码的复用性。
    2. 采用工厂模式、代理模式等设计模式,可以灵活实现对象的创建和管理,从而提高代码复用性。例如简单工厂模式可以利用一个共同的类别来统一实现对象的创建,避免了重复创建对象。
    3. 复用已有的稳定库,避免重复编写一些常用的或者已经存在的功能,例如许多开源库的代码既复用了许多常用功能的代码,同时也提供了一个可重用的标准类库供开发者调用。

    为什么不能在不同的类里面都定义相同的方法?

    Java中每个方法都有一个独一无二的方法签名,组成方式是方法的名字和参数列表。一个类中不能同时存在两个方法名和参数列表都相同的方法,这导致在不同的类中定义相同的方法会出现冲突,无法通过编译。而如果需要实现这种功能,可以通过在不同的类中使用不同的方法名和参数列表来实现。