package com.neal.day1004;
/**
* 有了对象的多态性以后,内存中实际上是加载了子类特有的属性和方法的,但是由于变量
* 声明为父类类型,导致编译时,只能调用父类中声明的属性和方法。子类特有的属性和方法
* 不能调用
*
* 如何才能调用子类特有的属性和方法?
* 使用强制类型转换符,向下转型:使用强制类型转换符
* Man m1 = (Man)p2;
*
* 使用强转时,可能出先ClassException的异常
*
* instanceof关键字的使用
*
* a instanceof A: 判断对象a时否是类A的实例。如果是,返回true;如果不是,返回false
*
* 使用情景:为了避免在向下转型时出现ClassCaseException的异常,我们在向下转型之前,先
* 进行instanceof的判断,一旦返回true,就进行向下转型。如果返回false,不进行向下转型
*
* 如果a instanceof A返回true,则 a instanceof B也返回true。
* 其中,类B时类A的父类。
* 不相关的两个类是无法赋值的
*/
public class Person {
}