import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;
import org.junit.Test;
public class InstanceTest {
@Test
public void test() throws FileNotFoundException {
FileReader fr = new FileReader("d:\\abc.txt");
System.out.println(fr instanceof Reader);
//这里是多态,父类引用指向子类对象
Reader reader = new FileReader("d:\\abc.txt");
System.out.println(reader instanceof FileReader);
System.out.println(reader instanceof Reader);
}
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)); } }程序输出: