public class Ilove {
public static void main(String[] args) {
/* M1 ob1=new M1();
M1 ob2=new M2();//父类的引用是可以指向子类对象的
M1 ob3=new Cks();//爷爷类的引用是可以指向孙子类对象,但仅限于继承的属形与方法
//M2 ob3=new M1();//错误
System.out.println(ob1);
System.out.println(ob2);
System.out.println(ob3);
ob2.eat();
ob3.eat();
//ob2.ser();父类引用指向子类对象不可以调用子类私有属性
}
}*/
M2 m2=new M2();
M1 m1=m2;//自动类型提升 向上类型转换
// m1.eat();//m1应用自动提升至m2引用地址
//m1.ser();//m1引用无法调用M2私有方法与属性
if(m1 instanceof M2 ){
M2 m22=(M2) m1;//向下类型转换,强制类型转换//向下类型转换有溢出风险,m22引用指向m1引用无法保证m1引用是否指向其他子类形成溢出风险
}else{
System.out.println("无法进行类型转换,转换成M2类型");
}
Cks cks=new Cks();
M1 m11=cks;
if(m11 instanceof Cks){
Cks dd=(Cks) m1;//1.编译时Cks类型 2.运行的是M2类型
}else{
System.out.println("无法进行类型转换,转换成Cks类型");
}
//没有经过基类自动转换,子类无法进行向下转换类型
}
}
米沙之国
sunday_imooc
相关分类