Java 这个方法对instanceof起什么作用?

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

我想知道这个方法是如何工作的?特别是这部分代码“((Book)o).getId()


谢谢

语法检查第一个对象是否实现或扩展了第二个对象。如果是,则返回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()