猿问

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

原题是:以接口与实现类为例说明向下转型和向下转型是怎么实现的?

以下是我用代码举的例子,不知道符不符合题意要求?请帮忙看看

//父类

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();

 

}

//接口无法向上转型。因为所属抽象类无法创建对象。

}

}

很少来提问,不知道看起来会不会不顺眼。


因为据说这是一套面试题,所以就问详细一点,还有几个问题:

为什么要对接口进行向下转换和向上转换?

直接创建对象就好了,为什么要向上或向下转型呢?我没明白这个作用是什么?

                怎么去论述:向上转型和向下转型是怎么实现的?(从哪方面?)




慕粉3505864
浏览 1552回答 1
1回答

qq_清风明月_9

向上转型是将子类型隐藏,就是不能使用子类的特有方法;向下转型是为了使用子类的特有方法。
随时随地看视频慕课网APP

相关分类

Java
我要回答