A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liu100chao 中级黑马   /  2015-6-19 10:39  /  179 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

毕向东老师的视频将多态的时候一开始说:父类的引用无法访问子类中的特有方法因为前期父类不知道子类中的特有功能,但是后面的例子
class 毕姥爷{
        void 讲课(){
                System.out.println("企业管理");
        }
        void 钓鱼(){
                System.out.println("钓鱼");
        }
}
class 毕老师 extends 毕姥爷{
        void 讲课(){
                System.out.println("JAVA");
        }
        void 看电影(){
                System.out.println("看电影");
        }
}
class {
        public static void main(String[] args) {
                毕姥爷 x = new 毕老师(); //毕老师对象被提升为了毕姥爷类型。
//                x.讲课();
//                x.看电影();  //错误.
                毕老师 y = (毕老师)x; //将毕姥爷类型强制转换成毕老师类型。
                y.看电影();//在多态中,自始自终都是子类对象在做着类型的变化。
        }
}



这个例子说明了:只要强制将父类的引用转换成子类类型以后,也就是向下转型以后,父类就可以调用子类的特有方法了!!这个前后矛盾,到底这个父类能不能调用子类的特有方法????

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马