Day_08【面向对象】扩展案例2_测试旧手机新手机类,并给新手机实现玩游戏功能

  • 分析以下需求,并用代码实现
     1.定义手机类
     	行为:
     		打电话,发短信
     2.定义接口IPlay
     	行为:
     		玩游戏
    
     3.定义旧手机类继承手机类
     	行为:
     		继承父类的行为
     4.定义新手机继承手机类实现IPlay接口
     	行为:继承父类的行为,重写玩游戏方法
    
     5.定义测试类
     	在测试类中定义一个 用手机的方法,要求该方法既能接收老手机对象,也能接收新手机对象
     	在该方法内部调用打电话,发短信以及新手机特有的玩游戏方法
    
  • 分析:
     旧手机类:打电话(){},发短信(){}
     新手机类:打电话(){},发短信(){}
    
  • 向上提取一个父类
    抽象手机类:
     打电话();
     发短信();
    
     旧手机类:继承手机类
     新手机类:继承手机类
    
    玩游戏接口:玩游戏();
    新手机实现玩游戏接口,重写游戏方法
    
package com.itheima4;
//抽象手机类
public abstract class Phone {

	public abstract void call();
	
	public abstract void sendMessage();

}
package com.itheima4;
//玩游戏接口
public interface IPlay {
	public abstract void playGame();

}
package com.itheima4;
//旧手机类
public class OldPhone extends Phone{

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

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

}
package com.itheima4;
//新手机类
public class NewPhone extends Phone implements IPlay{

	@Override
	public void playGame() {
		System.out.println("新手机能玩崩坏3");
	}

	@Override
	public void call() {
		System.out.println("新手机打电话");
	}

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

}
package com.itheima4;
//测试
public class Test {
	public static void main(String[] args) {
		OldPhone op = new OldPhone();
		op.call();
		op.sendMessage();
		System.out.println("------------------");
		
		NewPhone np = new NewPhone();
		np.call();
		np.sendMessage();
		np.playGame();
	}

}

控制台内容
控制台内容

posted @ 2019-12-13 17:40  _codeRookie  阅读(283)  评论(0编辑  收藏  举报