-
分析以下需求,并用代码实现 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();
}
}
控制台内容