⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 familyvsexacttype.java

📁 think in java TIJ-3rd-edition-code.zip
💻 JAVA
字号:
//: c12:FamilyVsExactType.java
// The difference between instanceof and class
package c12;
import com.bruceeckel.simpletest.*;

class Base {}
class Derived extends Base {}

public class FamilyVsExactType {
  static void test(Object x) {
    System.out.println("Testing x of type " +
      x.getClass());
    System.out.println("x instanceof Base " +
      (x instanceof Base));
    System.out.println("x instanceof Derived " +
      (x instanceof Derived));
    System.out.println("Base.isInstance(x) " +
      Base.class.isInstance(x));
    System.out.println("Derived.isInstance(x) " +
      Derived.class.isInstance(x));
    System.out.println(
      "x.getClass() == Base.class " +
      (x.getClass() == Base.class));
    System.out.println(
      "x.getClass() == Derived.class " +
      (x.getClass() == Derived.class));
    System.out.println(
      "x.getClass().equals(Base.class)) " +
      (x.getClass().equals(Base.class)));
    System.out.println(
      "x.getClass().equals(Derived.class)) " +
      (x.getClass().equals(Derived.class)));
  }
  public static void main(String[] args) {
    SimpleTest monitor =
      new SimpleTest("c12.FamilyVsExactType");
    test(new Base());
    test(new Derived());
    monitor.expect(new String[] {
      "Testing x of type class c12.Base",
      "x instanceof Base true",
      "x instanceof Derived false",
      "Base.isInstance(x) true",
      "Derived.isInstance(x) false",
      "x.getClass() == Base.class true",
      "x.getClass() == Derived.class false",
      "x.getClass().equals(Base.class)) true",
      "x.getClass().equals(Derived.class)) false",
      "Testing x of type class c12.Derived",
      "x instanceof Base true",
      "x instanceof Derived true",
      "Base.isInstance(x) true",
      "Derived.isInstance(x) true",
      "x.getClass() == Base.class false",
      "x.getClass() == Derived.class true",
      "x.getClass().equals(Base.class)) false",
      "x.getClass().equals(Derived.class)) true"
    });
  }
} ///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -