是扩展正确的方法吗?

时间:2019-03-07 16:39:28

标签: java inheritance extends

假设我有一个像这样的JSONObject:

{ "name":"John", 
"age":30, 
"car":null,
contact":  {
      "telephone": "12345", 
      "extension": "34
    }
 }

并且我想创建一个类,在其中编写一些方法以这种格式从JSONObjects中获取某些值。

我的第一个想法是创建一个扩展JSONObject并添加所需方法的类(我们称其为“ Person”),问题是我将JSONObject作为REST API中方法的返回对象,而不是从JSONObject的类构造函数获取,所以我无法使用其父构造函数在Person中创建构造函数,也无法将该JSONObject强制转换为Person,因为我将拥有ClassCastException。 您认为解决这个问题的最佳/正确方法是什么?我想念什么?

另一种选择是使用JSONObject作为类变量来创建Person类(不扩展),并使用JSONObject作为唯一参数来创建构造函数。但这对我来说似乎并不“优雅”。

那是让我觉得我可能还不了解OOP的问题之一,因为我印象中有一种显而易见的方法可以完成它,我现在看不到哈哈

谢谢!

0 个答案:

没有答案
相关问题