JAVA单排日记-2019/10/22-3-对象的向上转型与对象的向下转型

对象的向上转型

在这里插入图片描述
1.同多态
2.向上转型一定是正确的,安全的
3.弊端:一旦向上转型为父类,就无法调用子类特有的方法
4.解决方案:对象的向下转型还原

对象的向下转型

  • 格式
    类似于强制数据类型转换
父类名称 对象名1 = new 子类名称(); 向上转型
子类名称 对象名2 = (子类名称)对象名1; 向下转型
  • 含义:将父类对象还原为本类的子类对象
    在这里插入图片描述
public class Fu2 {
    int num = 20;
    public void methodFu(){
        System.out.println(num);
    }
}

public class Zi1 extends Fu1 {
    int num = 10;
    public void methodZi(){
        System.out.println(num);
    }
}

public class Multi {
    public static void main(String[] args) {
        Fu2 obj = new Zi2();
        obj.methodFu();编译看左边运行看右边,左边Fu2有methodFu(),右边Zi2可以继承Fu2的methodFu(),所以正确
        obj.methodZi(); 错误写法!!,编译看左边运行看右边,左边Fu2没methodZi(),所以会出现编译错误
        
        Zi2 one = (Zi2)obj;向下类型转换
        one.methodFu();正确
        one.methodZi();正确
    }
}

在这里插入图片描述

instanceof关键字

  • 作用:识别父类引用的对象,本类的子类
  • 格式:
对象 instanceof 类名称

在这里插入图片描述

发布了90 篇原创文章 · 获赞 1 · 访问量 2079

猜你喜欢

转载自blog.csdn.net/wangzilong1995/article/details/102712529