1 instanceof操作符
1.1 语法及说明
- 语法:
x(对象) instanceof A(类名)
- 说明:
- ①要求对象所属的类和类A必须是子类和父类的关系,否则编译错误。
- ②如果x属于类A的子类B,x instanceof A值也为true。
1.2 instanceof操作符的应用示例
- 示例:
package day13; public class Person { }
package day13; public class Student extends Person { }
package day13; public class Demo { public static void main(String[] args) { Person p = new Student(); if(p instanceof Student){ System.out.println("p的实际类型是Student"); } } }
2 对象类型转换
2.1 基本数据类型的转换
- 自动类型转换:小的数据类型可以自动转换成大的数据类型。
package day13; public class Demo { public static void main(String[] args) { int i = 100; long l = i; System.out.println("l:" + l); } }
- 强制类型转换:可以把大的数据类型强制的转换成小的数据类型,但是可能会丢失精度。
package day13; public class Demo { public static void main(String[] args) { double d = 20.0; float f = (float) d; System.out.println("f:" + f); } }
2.2 对象类型转换
- 向上类型转换:从子类到父类的类型转换,其实就是多态。
package day13; public class Person { }
package day13; public class Student extends Person { }
package day13; public class Demo { public static void main(String[] args) { Person p = new Student(); System.out.println(p); } }
- 向下类型转换:从父类到子类的类型转换必须通过()来实现。
package day13; public class Person { }
package day13; public class Student extends Person { }
package day13; public class Demo { public static void main(String[] args) { Person p = new Student(); Student s = (Student) p; System.out.println(s); } }
2.3 图解基本类型转换和对象类型转换
3 Object类
3.1 Object类的简介
- Object类是所有类的根类。
- 如果在类的声明中没有使用extends关键字指明其父类,则默认父类是Object类,换言之,Object类是所有类的直接或间接父类。
3.2 Object类的主要结构