博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重写和强制转换再调用能编译但不能运行
阅读量:6994 次
发布时间:2019-06-27

本文共 903 字,大约阅读时间需要 3 分钟。

class A {    void foo() {        System.out.println("foo() in A");    }//重载    void foo(int a) {        System.out.println("foo(int a) in A");    }    void foo(double a) {        System.out.println("foo(double) in A");    }    void foo(int a,int b) {        System.out.println("foo(int a,int b) in A");    }    void foo(int... a) {        System.out.println("foo(int... a) in A"+a.length);    }}class B extends A {    void foo() {        System.out.println("foo in B");//重写 子类同名父类方法覆盖    }    void foo (String msg) {        System.out.println("foo(String) in B");    }}class C extends B {}class Demo2 {    public static void main(String[] args) {        A a = new A();//用父类引用来操作子类对象 更灵活一些        B b = (B)a;//此时B指向a,没有B类的功能,编译能过,但不能运行        b.foo("1213");            }}
空调原理,模板类是空调,子类是加了新功能的空调,引用是遥控器,用旧遥控器去操作有新功能的空调,你遥控器都没有新功能的按键,结果就是能编译但是不能运行。

转载于:https://www.cnblogs.com/zhangmingzhao/p/7256679.html

你可能感兴趣的文章
书上的脚本案例
查看>>
Go学习笔记一:基础知识
查看>>
认知学习法
查看>>
js 什么是深拷贝问题?
查看>>
关于java时间转换及计算的整理
查看>>
协方差矩阵求解算法分析
查看>>
Git常用命令
查看>>
2015年9月2日 安装PL/SQLDeveloper
查看>>
如何一步步把网站Retina优化
查看>>
数据呈现左偏时标准化的处理方式
查看>>
【Unity】5.2 天空盒
查看>>
重新开始 2011/11/25
查看>>
运算符
查看>>
PHP错误报告级别
查看>>
Windows 下安装和配置 MongoDB(二)
查看>>
bzoj4552 排序
查看>>
优先级 css
查看>>
第三次作业-结对编程
查看>>
文件上传,跨浏览器统一的样式
查看>>
内存屏障
查看>>