Java 是单继承的;那么如何完成“继承多个类”这样的效果?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 是单继承的;那么如何完成“继承多个类”这样的效果?相关的知识,希望对你有一定的参考价值。

业务场景是这样的:
有两个API的入参基类,是架构上早已写好的,都有比较多的单独调用了,
现在新写一个API,需要同时用这两个基类的字段,字段都比较多,不想重写了,
入参的格式也固定下来了,不能改,
怎样写一个入参类,让它与这两个基类都关联上?而不重写字段?

例如,基类A的字段有
String a,
String b,
String c,

基类B的字段有
String x,
String y,

请求的格式为
a:"a1",
b:"b1",
c:"c1",
x:"x1",
y:"y1"

新定义一个类,有两个属性,属性A是基类A,属性B是基类B。前端嗲用api后你将参数弄到一个A一个B上,在set到C里

ClassC

private 基类A  a;

private 基类B   b;

追问

那不是在外面套了一层?请求的格式是A和B的字段都混在同一层里的

追答

请求你用Object接,接入后转为JSONObject,在JSONobject分别转类A类B。如图

参考技术A kotlin 可以多继承

java之继承

为什么要有继承?

多个类中存在相同属性和行为时,将这些内容抽取到单独的一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。子类继承了父类,就继承了父类的属性和方法;在子类中,可以使用父类中定义的方法和属性,也可以创建新的属性和方法;子类中不能直接访问父类的private属性,只能通过set、get方法来获取。

语法:class Student extends Person{}

这里Person就是父类,Student就是子类。

继承的作用

  • 提高了代码的复用性;
  • 让类与类之间产生了关系,提供了多态的前提;
  • 不要为了去获取其它类中的某个功能而去继承;

java只支持单继承,不允许多继承,也就是说一个子类只能由一个父类,但是一个父类可以派生出多个子类。

也就是说:

public class Student extends Person{}

public class MiddleStudent extends Student{}

这样是正确的。

public MiddleStudent extends Student,Person{}

这样是错误的。

以上是关于Java 是单继承的;那么如何完成“继承多个类”这样的效果?的主要内容,如果未能解决你的问题,请参考以下文章

Java的抽象类

Java 继承详解

Java之继承性

Java中继承与多态及封装(第一篇)

java之继承

java中的继承关系