interface A{
}
class B implements A{
}
class C extends B{
}
public class Iinstanceof {
public static void main(String[] args) {
A ab=new B();
A ac=new C();
B bc=new C();
B bb=new B();
C cc=new C();
//对象实现一个接口,用这个对象和这个接口进行instanceof判断,都为true。
System.out.println("ab instanceof A="+(ab instanceof A));
System.out.println("ac instanceof A="+(ac instanceof A));
System.out.println("bc instanceof A="+(bc instanceof A));
System.out.println("bb instanceof A="+(bb instanceof A));
System.out.println("cc instanceof A="+(cc instanceof A));
//对象和父类进行instanceof判断,都为true
System.out.println("ab instanceof B="+(ab instanceof B));
System.out.println("ac instanceof B="+(ac instanceof B));
System.out.println("bc instanceof B="+(bc instanceof B));
System.out.println("bb instanceof B="+(bb instanceof B));
System.out.println("cc instanceof B="+(cc instanceof B));
//对象和他的子类进行instanceof判断为false
System.out.println("ab instanceof C="+(ab instanceof C));
System.out.println("ac instanceof C="+(ac instanceof C));
System.out.println("bc instanceof C="+(bc instanceof C));
System.out.println("bb instanceof C="+(bb instanceof C));
System.out.println("cc instanceof C="+(cc instanceof C));
}
}
程序输出:
ab instanceof A=true
ac instanceof A=true
bc instanceof A=true
bb instanceof A=true
cc instanceof A=true
ab instanceof B=true
ac instanceof B=true
bc instanceof B=true
bb instanceof B=true
cc instanceof B=true
ab instanceof C=false
ac instanceof C=true
bc instanceof C=true
bb instanceof C=false
cc instanceof C=true
分享到:
相关推荐
总结来说,`instanceOf`在Java中是一个有用的工具,它允许我们在运行时检查对象的类型,但应谨慎使用,以保持代码的清晰和高效。在编写多态代码时,尽量依赖于接口和继承的性质,而不是依赖于`instanceOf`的检查。
- `instanceof`在多态编程中非常有用,它可以用来在运行时动态地判断对象的实际类型,从而决定如何执行特定的操作,这通常与方法的重写和覆盖一起使用。 7. **设计模式中的应用**: - 在某些设计模式中,如工厂...
Java中的`instanceof`运算符是用来在程序运行时判断一个对象是否属于某个特定类或其子类(或者实现了某个接口)的关键字。它允许我们动态地检查对象的类型,这对于多态性和类型安全的编程非常有用。以下是`...
1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什
以下是关于`instanceof`在Java和Android中使用的详细解释: 首先,`instanceof`的基本用法是检查一个对象是否是右操作数所表示的类、接口或其子类的实例。例如,如果`obj`是一个对象,`Class`是类名,那么`obj ...
010402_【第4章:数组与方法】_方法的声明及使用笔记.pdf 010403_【第4章:数组与方法】_数组的引用传递笔记.pdf 010404_【第4章:数组与方法】_Java新特性对数组的支持笔记.pdf 020501_【第5章:面向对象基础】_...
其中包含的"Java.Bug模式详解.pdf"很可能是详细分析了Java编程中的错误模式和陷阱的一份指南。 在Java编程中,bug模式通常指的是那些由于编程错误或设计缺陷导致的常见问题。这些问题可能涉及到内存管理、并发处理...
《Java Bug模式详解》这本书是Java开发者们的重要参考资料,它深入剖析了在编程过程中常见的错误模式,即“Bug模式”,并提供了详细的解决策略。Bug模式是程序员在编码时容易犯的错误,理解并掌握这些模式有助于提升...
四、Openfire Java客户端API详解 `javadoc`文件包含了Openfire提供的Java API详细说明,这些API可以帮助开发者更深入地集成Openfire功能,例如: - `org.jivesoftware.openfire`包:包含Openfire服务器的核心组件和...
Java编程语言中的关键字是语言语法的核心组成部分,它们具有特殊的含义并用于特定的编程目的。以下是一些Java关键字的详细说明: 1. `abstract`:`abstract`关键字用于声明抽象类和抽象方法。抽象类不能被实例化,...
Java 反射(Java Reflection)是Java编程语言中的一种高级特性,它允许程序在运行时动态地获取类的信息(如类名、字段、方法等)并进行操作,从而增加了程序的灵活性和动态性。以下是对Java反射机制的详细解释: 1. ...
在Java编程语言中,`equals()` 方法是一个关键的成员函数,它主要用于比较对象的值是否相等。这个方法源自于 `Object` 类,是所有其他类的基类。默认情况下,`equals()` 方法的行为与 `==` 运算符相同,即比较两个...
在Java中,使用关键字`extends`来表示一个类继承自另一个类。例如: ```java public class ChildClass extends ParentClass { // 子类的成员变量和方法 } ``` 在这个例子中,`ChildClass`是子类,`ParentClass`是...
Java编程语言中有51个关键字,它们在程序中扮演着至关重要的角色,用来定义类、接口、变量、方法以及控制程序流程。以下是一些主要的关键字及其解释: 1. `abstract`:抽象关键字,用于声明抽象类和抽象方法。抽象...
Java中的`instanceof`关键字用于检测对象是否属于特定类型或者其子类型。例如,`if (obj instanceof MySubClass)`会检查`obj`是否是`MySubClass`或其子类的实例,如果是,则返回`true`,否则返回`false`。在满足条件...
本次教程的主题围绕着Java中的高级类概念展开,具体包括类构造函数、`this`关键字、静态属性和方法、`instanceof`运算符等内容。这些知识点对于深入理解Java面向对象编程至关重要。 #### 二、类构造函数 构造函数是...
### Java中的Calendar类详解 #### 一、引言 在Java中处理日期和时间非常常见,而`java.util.Calendar`类则是进行此类操作的核心工具之一。`Calendar`类提供了一系列的功能来帮助开发者处理复杂的日期计算问题,...
在Java中,泛型也可以应用于类、接口和方法。本文将深入探讨泛型在继承中的应用和原理。 一、泛型继承的基本原理 在创建一个泛型类(如`Apple<T>`)后,我们可以基于这个泛型类创建具体的子类。例如,如果我们有一...
虽然`const`被定义为关键字,但在Java中并未使用。 ```java // 不正确的用法 // const int MAX = 100; ``` ##### float `float`类型用于存储单精度浮点数。 ```java float f = 1.23f; ``` ##### native `...