(4)用接口完成下面的任务。 1)定义一个手机(MobilePhone)接口,它有打电话(call)、接电话(receive)、发送短信(sendMsg)、接受短信(receiveMsg)的功能。 2

(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();
}
}

你可能感兴趣的:(java,java,接口)