gpt4 book ai didi

java - 类继承

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:07 26 4
gpt4 key购买 nike

我有两个类:

class ItemInfo {

public View createItemView() {
View v;
// ...
v.setTag(this);
return v;
}
}

class FolderInfo extends ItemInfo {

@Override
public View createItemView() {
View v;
// ...
v.setTag(this);
return v;
}
}

然后我使用它:

FolderInfo folderInfo;
// Create it here
ItemInfo itemInfo = folderInfo;
View v = itemInfo.createItemView();
Object objectTag = v.getTag();

然后我通过 instanceof 检查 objectTag 的类型,它是 ItemInfo!为什么?

最佳答案

如果你这样做:

if (itemInfo instanceof ItemInfo) {
System.out.println("OK!");
}

您当然会看到 "OK!" 被打印出来,因为 FolderInfoItemInfo 的子类 - 所以 FolderInfo 也是一个 ItemInfo 对象。

继承意味着从子类到父类(super class)存在“是一种”关系 - 参见 Liskov substitution principle .

关于java - 类继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com