我试图弄清楚如何创建一个可以存储超类和子类对象的数组。
Book[] books = new Book[10]
我必须使用关键字super或sub吗?请清除我的怀疑。
谢谢
答案 0 :(得分:2)
让我们假设Book是你的超类,然后你的子类是 - >
Book[] books = new Book[10]
现在是你的数组,
{{1}}
可以存储Book和SuspenseBook对象的对象。
如果有帮助,请告诉我。
答案 1 :(得分:0)
是的,您可以将Subclass对象存储在超类对象数组中。 让我们说你有这段代码:
Animal[] animals = { new Animal(), new Cow()}
这段特殊的代码在第11行有Animal
。
此代码将创建一个超类类型的数组(即Cow
),并将初始化两个对象 - 一个超类和一个要存储在数组中的子类。
现在,由于子类Animal
继承了超类Cow
,因此将Animal animals = new Cow();
类对象添加到超类数组中可以重写为:
df_new_row = pd.DataFrame({'name':['a'],'id':[4],'value':[40.7]})
df_l = df[['id','value']].drop_duplicates().assign(key=1).merge(df_new_row.assign(key=1),on='key',suffixes=('','_2'))
df_r = df[['id','value']].drop_duplicates().assign(key=1).merge(df_new_row.assign(key=1),on='key',suffixes=('_2',''))
pd.concat([df,df_l,df_r]).drop('key',axis=1)
这是多态,其中超类引用变量可用于存储子类对象的地址。简而言之,超类可以采用子类的形式(书籍定义)。
**因此,为了回答您的问题,您可以将子类对象存储在超类数组中。