class A{
int a = 10;
void a(){
}
}
class B{
int b = 20;
void b(){
}
}
public class Ex_instanceOf extends A{
public static void main(String[] args) {
A b = new A();
System.out.println(b instanceof A);
}
}
以上代码会输出true,但是将代码System.out.println(b instanceof A);
改为System.out.println(b instanceof B);并不会输出false,而是不能通过编译请问怎么样才能达到输出false的效果呢!!!
请教java中instanceof的用法!!
答案:2 悬赏:0 手机版
解决时间 2021-01-11 02:23
- 提问者网友:温柔港
- 2021-01-10 04:13
最佳答案
- 五星知识达人网友:北城痞子
- 2019-07-17 22:06
一般instanceof用在未知类型(比如Object)之间的比较。由于b显式定义为class A,而A与B之间显式没有继承关系,所以,编译器会报错。你把A b= new A();改成Object b = new A();就行了
全部回答
- 1楼网友:北城痞子
- 2019-11-28 15:31
java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。该语言规定了s必须是右边class类的继承数中的一个,否则编译出错。你可以这样改:system.out.println(boolean.valueof(s) instanceof boolean);,但是这个结果是true。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯