原题是:以接口与实现类为例说明向下转型和向下转型是怎么实现的?
以下是我用代码举的例子,不知道符不符合题意要求?请帮忙看看
//父类
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();
}
//接口无法向上转型。因为所属抽象类无法创建对象。
}
}
很少来提问,不知道看起来会不会不顺眼。
因为据说这是一套面试题,所以就问详细一点,还有几个问题:
为什么要对接口进行向下转换和向上转换?
直接创建对象就好了,为什么要向上或向下转型呢?我没明白这个作用是什么?
怎么去论述:向上转型和向下转型是怎么实现的?(从哪方面?)
qq_清风明月_9
相关分类