1、对象类型转换(Casting)
1.1基础数据类型转换Casting:
- 自动类型转换:小的数据类型可以自动转换成大的数据类型(如 long g = 20 ; double d = 12.0f)
- 强制类型转换:可以把大的数据类型强制转换成小的数据类型(如 float f = (float)12.0 ; int a = (int)1200L)
2.2对Java对象的强制类型转换称为造型
- 从子类到父类的类型可以自动进行
- 从父类到子类的类型转换必须通过造型(强制类型转换)实现
- 无继承关系的引用类型间的转换是非法的
Student s = new Student();
Person p =s;//子类到父类的类型转换可以自动进行
Person q = new Person();
Student t = (Student) q;//从父类到子类转换必须通过造型
//Object是所有类的最高父类
String str= "hello";
Object obj = str;//子类到父类的类型转换可以自动进行
Object objs = "world";
String strs = (String)objs;//从父类到子类转换必须通过造型
package com.zhukun;
class Person
{
public void gettext()
{
System.out.println("这是Person的gettext方法");
}
}
class Student extends Person
{
public void getSchool()
{
System.out.println("这是student的getschoo方法");
}
}
public class test {
public void method(Person e)
{
if(e instanceof Student)
{
Student s = (Student) e;
s.getSchool();
}else {
e.gettext();
}
}
public static void main(String[] args)
{
test t =new test();
t.method(new Person());
t.method(new Student());
}
}