Java程序基础设计疑问求解

"接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法"这句话是对还是错?


https://wenda.so.com/q/1372474675065387

  • 这篇博客: java基础---继承能实现的为什么要使用接口?接口的在java中的作用中的 java基础—继承能实现的为什么要使用接口?接口的在java中的作用! 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、最明了的作用:在java中只能单一继承,接口可以解决无法多继承的问题,java里面可以同时实现多个接口,接口不仅能体现代码的拓展性,而且还提高代码的维护性!
    2、接口的使用说明:

    • 接口中可以只能定义常量(必须在定义时就给定初始值),不能定义变量,同时接口中的属性都是全局静态常量(public static final修饰)

    • 接口中的所有方法都是抽象方法,可以省略 abstract 修饰

    • 接口不能实例化,不能有构造 new不出来

    • 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类

    • 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类

       话不多说直接上案例!先用原始方法 再用(继承)重载方法,最后使用(接口)重写进行对比体现接口的优势!
       案例如下:
       ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200527084334277.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzQ1MjAxNw==,size_16,color_FFFFFF,t_70)
      

      为学校开发这样的一个小系统,包含类型:教员、学校、打印机具体要求:

    • 教员、以及学校都具有方法:输出详细信息

    • 学校具有属性:打印机,能够通过学校的打印机打印教员或学校的详细信息

    • 系统要具备良好的可拓展性与维护性
      首先要创建 教员(Teacher)、学校(School) 、打印机(Printer) 测试(Test)四个类代码如下
      这是最原始的方法
      案例发现学校的打印机在打印老师和学校信息的时候要创建2个方法非常不方便记忆和书写,于是乎我们就使用重载(方法名相同而变量名不同)只需修改school的代码,如下
      原始方法进一步提升到 重载 只需要一个方法名
      使用方法名后发现还不是很方便,毕竟还是要书写两个方法,于是我们就使用重写
      书写工具类GongTong,直接使用接口书写代码
      从上面的简单案例我们可以总结下列几点:
      原始:
      1.新增加一个学生的类,有一个返回学生信息的方法
      2.School中新增一个打印学生的方法
      问题:
      1.School中每增加一种类型就要增加一个方法
      2.而且调用的时候我就要去记忆很多的方法名

    重载
    1.新增加一个学生的类,有一个返回学生信息的方法
    2.School中新增一个打印学生的方法
    问题:
    1.School中每增加一种类型就要增加一个方法
    好处:
    1.无论调用哪一个打印的方法都只要记一个方法名,传入不同的类型就可以了。

    重写:
    1.新增加一个学生的类,有一个返回学生信息的方法
    好处:
    1.无论调用哪一个打印的方法都只要记一个方法名,传入不同的类型就可以了。
    2.无论增加多少种类型,都不需要再增加方法,因为定义的是接口,而可以传入任意的实现类