Java 这个方法对instanceof起什么作用?
我想知道这个方法是如何工作的?特别是这部分代码“((Book)o).getId()Java 这个方法对instanceof起什么作用?,java,methods,boolean,equals,instanceof,Java,Methods,Boolean,Equals,Instanceof,我想知道这个方法是如何工作的?特别是这部分代码“((Book)o).getId() 谢谢语法检查第一个对象是否实现或扩展了第二个对象。如果是,则返回true。然后,因为它是一本书,所以它获取对象的ID,这是一本书。首先,if语句验证变量o是否是book类的实例 if (o instanceof Book) 第二,如果o是一本书,那么我们可以把它写成一本书。 下面的代码返回一个Book对象: Book myVar = (Book) o; 第三,我们可以在myVar中调用Book方法。例如: m
谢谢语法检查第一个对象是否实现或扩展了第二个对象。如果是,则返回true。然后,因为它是一本书,所以它获取对象的ID,这是一本书。首先,if语句验证变量o是否是book类的实例
if (o instanceof Book)
第二,如果o是一本书,那么我们可以把它写成一本书。
下面的代码返回一个Book对象:
Book myVar = (Book) o;
第三,我们可以在myVar中调用Book方法。例如:
myVar.getId()
您发布的代码在一行中完成所有这些操作。Cast,调用Book方法并返回响应。public boolean equals(对象o){
如果(o书本实例){
返回id==((Book)o).getId();
}
返回false;
}
方法被传递给一个对象,instanceof
检查传递给方法的对象是否为Book
类型
如果对象的类型为Book
,则可以将对象安全地强制转换为Book
现在,对象是一本书
——您可以使用书
类拥有的方法
如果Book
对象o
与id
具有相同的值,它将返回true
否则false
如果对象不是一本书,它将返回默认值
false
。如果o
是book
的一个实例,它将o
强制转换到book
并获取其ID。什么方面让您感到困惑?请查找“强制转换”。你得到一个对象
参数,检查它是否是Book
类型(使用instanceof
),如果是,你将它强制转换为Book
,这样你就可以在它上面调用Book
方法(getId()
)代码>返回id==b.getId()代码>一个对象
没有方法getId()
,但是Book
有方法<代码>书本的o实例
用于确保在强制转换之前,o
属于Book
类型或属于Book
的子类型。
myVar.getId()