java面对对象的多态的一个练习题

三:
1.定义手机类Phone
行为: 打电话(call),发短信(sendMessage)
2.定义接口IPlay
行为: 玩游戏(play)
3.定义旧手机类(OldPhone)继承手机类
行为: 继承父类的行为
4.定义新手机类(NewPhone)继承手机类实现IPlay接口
行为: 继承父类的行为,重写玩游戏方法
5.定义测试类(Test),创建对象并调用方法,运行效果如下(使用多态):
旧手机打电话
旧手机发信息
新手机打电话
新手机发信息
新手机玩游戏

参考如下:
1.定义手机类Phone

public class Phone {
    public void call() {}
    public void sendMessage() {}
}

2.定义接口IPlay

public interface IPlay {
    void play();
}

3.定义旧手机类(OldPhone)继承手机类

public class OldPhone extends Phone {
    @Override
    public void call() {
        System.out.println("旧手机打电话");
    }

    @Override
    public void sendMessage() {
        System.out.println("旧手机发信息");
    }
}

4.定义新手机类(NewPhone)继承手机类实现IPlay接口

public class NewPhone extends Phone implements IPlay {
    @Override
    public void call() {
        System.out.println("新手机打电话");
    }

    @Override
    public void sendMessage() {
        System.out.println("新手机发信息");
    }

    @Override
    public void play() {
        System.out.println("新手机玩游戏");
    }
}

5.定义测试类(Test),创建对象并调用方法

public class Test {
    public static void main(String[] args) {
        Phone op = new OldPhone();
        Phone np = new NewPhone();
        op.call();
        op.sendMessage();
        np.call();
        np.sendMessage();
        ((NewPhone)np).play();
    }
}

牛蛙