zoukankan      html  css  js  c++  java
  • 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();
    	}
    
    }
    

    控制台内容
    控制台内容

  • 相关阅读:
    mysql字符集和数据库引擎修改方法
    android 之GridView和ImageView教程
    把php代码保存到php文件实现方法
    extjs gridpanel 操作行 得到选中行的列
    SQL 分页
    vs 调试 慢 解决办法
    JS获取屏幕高度
    C#事件以及委托
    ExtJs 3.0 不兼容 IE9
    ASP.NET 获取客户端IP (无视代理)
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772544.html
Copyright © 2011-2022 走看看