gpt4 book ai didi

java - 扩展另一个类的变量不可见性

转载 作者:行者123 更新时间:2023-12-01 20:56:27 25 4
gpt4 key购买 nike

我有几个类:bookvideo,它们都扩展项目:

class item {
int item_num;
String title;
}
class video extends item {
double length;
char rating;
}
class book extends item {
String author;
int year;
}

我有一个值文本文件,需要将其插入到item列表中。文本文件如下所示:

v    382    Armageddon    120    P
v 281 Scream 138 R
b 389 Othello Shakespeare 1603
v 101 Cellular 110 P
b 482 Hatchet Paulson 1987

文件的读取方式:

list<item> theList;
item newItem;
while(true) {
if(file.isEOF) { break; }
if(file.getChar == 'v') {
newItem = new video();
/* the get___ methods below grab the next value
* in the file. Values tab delimited */
newItem.item_num = file.getInt();
newItem.title = file.getString();
newItem.length = file.getDouble();
newItem.rating = file.getChar();
} else if (file.getChar == 'b') {
newItem = new book();
newItem.item_num = file.getInt();
newItem.title = file.getString();
newItem.author = file.getString();
newItem.year = file.getInt();
}
theList.add(newItem);
}

Netbeans 弹出错误,指出 bookvideo 变量不在类 item 中。

为什么扩展 item 的类中的变量不可见?我如何访问这些变量?

最佳答案

问题是 newItem 的类型是 item。虽然书籍视频都是项目,但反之则不然。

如果您希望编译器看到子类中声明的变量,您需要在访问其变量之前将 newItem 转换为适当的子类。每次您需要时都可以执行此操作,但最好您需要说 book b = new book() 而不是 item newItem = new book()

关于java - 扩展另一个类的变量不可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289489/

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