(4)用接口完成下面的任务。 1)定义一个手机(MobilePhone)接口,它有打电话(call)、接电话(receive)、发送短信(sendMsg)、接受短信(receiveMsg)的功能。 2)定义一个照相机(camera)接口,它有拍照(takePhoto)功能。 3)定义一个照相手机(CameraPhone)接口,它有手机的功能,也有照相机的功能。 4)定义一个类HuaweiPhone和类ApplePhone,它们都是照相手机。 5)定义一个类Student,它有name、myPhone(类型为CameraPhone)两个属性;有一个带参数的构造方法(给name和myPhone赋初值),还有一个打电话(mycall)方法,这个方法调用myPhone的call方法。 6)定义一个测试类TestInterface,定义一个主方法,创建一个学生(name随意),他的手机是HuaweiPhone的,再创建一个学生(name随意),他的手机是ApplePhone的,分别调用它们的mycall方法来展现多态。 7)以上所有方法输出内容自拟。
package thirdjava; public class TestInterface { /** * @param args */ public static void main(String[] args) { Student s1 = new Student("张三",new NokiaPhone()); Student s2 = new Student("李四",new MotoPhone()); s1.myCall(); s2.myCall(); } } interface MobilePhone{ void call(); void receive(); void sendMsg(); void receiveMsg(); } interface Camera{ void takePhoto(); } interface CameraPhone extends MobilePhone,Camera{ } class NokiaPhone implements CameraPhone{ @Override public void call() { System.out.print("Nokia call"); } @Override public void receive() { System.out.print("Nokia receive"); } @Override public void receiveMsg() { System.out.print("Nokia receiveMsg"); } @Override public void sendMsg() { System.out.print("Nokia sendMsg"); } @Override public void takePhoto() { System.out.print("Nokia takePhoto"); } } class MotoPhone implements CameraPhone{ @Override public void call() { System.out.print("Moto call"); } @Override public void receive() { System.out.print("Moto receive"); } @Override public void receiveMsg() { System.out.print("Moto receiveMsg"); } @Override public void sendMsg() { System.out.print("Moto sendMsg"); } @Override public void takePhoto() { System.out.print("Moto takePhoto"); } } class Student{ private String name; private CameraPhone myPhone; public Student(String name,CameraPhone phone){ this.name=name; this.myPhone=phone; } public void myCall(){ this.myPhone.call(); } }