为了账号安全,请及时绑定邮箱和手机立即绑定

在这代码中,为什么用接口进行向上或向下转换呢?

在这代码中,为什么用接口进行向上或向下转换呢?

慕粉3505864 2016-12-13 19:00:11
原题是:以接口与实现类为例说明向下转型和向下转型是怎么实现的?以下是我用代码举的例子,不知道符不符合题意要求?请帮忙看看//父类public class Telphone { public void call() { System.out.println("接打电话"); } public void message() { System.out.println("收发短信"); }}//子类public class SmartPhone extends Telphone implements IPlayGame { @Override public void playGame() { System.out.println("SmartPhone可以玩游戏了"); }}//接口public abstract interface IPlayGame { public void playGame();}//main函数public class Initail { public static void main(String[] args) {//向下转型 SmartPhone smartphone = new SmartPhone(); smartphone.call();   if(smartphone instanceof IPlayGame){ IPlayGame i = (IPlayGame)smartphone; i.playGame();   }//接口无法向上转型。因为所属抽象类无法创建对象。 }}很少来提问,不知道看起来会不会不顺眼。因为据说这是一套面试题,所以就问详细一点,还有几个问题: 为什么要对接口进行向下转换和向上转换? 直接创建对象就好了,为什么要向上或向下转型呢?我没明白这个作用是什么?                怎么去论述:向上转型和向下转型是怎么实现的?(从哪方面?)
查看完整描述

1 回答

?
qq_清风明月_9

TA贡献9条经验 获得超1个赞

向上转型是将子类型隐藏,就是不能使用子类的特有方法;

向下转型是为了使用子类的特有方法。

查看完整回答
反对 回复 2016-12-20
  • 1 回答
  • 0 关注
  • 1551 浏览

添加回答

代码语言

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信