转型cast

cast 转型

java 是强类型语言

向上转型:(自动类型提升)
向下转型:(强制类型转换)

孔子装爹案例:

//孔子装爹
public class CastTest {
	public static void main(String[] args) {
		// 向上转型:(自动类型提升)
		// 有人请孔子爹授课 孔子爹不在 孔子上阵
		KongZiDie cKongZi = new KongZi();// 化妆的孔子
		cKongZi.teach();// 讲的还是 孔子的课
		System.out.println(cKongZi.age);// 45
		// 向下转型:(强制类型转换)
		// 此时孔子朋友找他一起游玩
		KongZi rKongZi = (KongZi) cKongZi;// 卸妆恢复成孔子 小范围类型 引用=(小范围类型)大范围引用;
		rKongZi.play();//游玩
		/*rKongZi.age;
		rKongZi.work();*/ //处理下
	}
}

// 孔子爹
class KongZiDie {
	int age = 45;

	void teach() {
		System.out.println("父亲的课");
	}
}

// 孔子
class KongZi extends KongZiDie {
	int age = 25;

	void teach() {
		System.out.println("孔子的课");
	}

	void play() {
		System.out.println("游玩");
	}
}

ClassCastException 类型转换异常

instanceof 运算符 ★
A instanceof B 判断A引用是否是B类型的对象||是否是B类型子类的对象,如果是返回true,如果不是返回false
编译的时候只检查A和B是否在一条继承链上

你可能感兴趣的:(JAVA,面向对象)