接口实现下列功能。
接口实现下列功能。

答案
// 1. 定义「照相」接口
interface Photograph {
void takePhoto(); // 照相功能
}
// 2. 抽象类:手机(实现照相接口,本身不能直接实例化)
abstract class Phone implements Photograph {
public abstract void takePhoto();
public void call() {
System.out.println("打电话");
}
}
// 3. 抽象类:照相机(实现照相接口,本身不能直接实例化)
abstract class Camera implements Photograph {
public abstract void takePhoto();
}
// 4. 具体类:普通手机(继承 Phone,但不能拍照)
class NormalPhone extends Phone {
@Override
public void takePhoto() {
System.out.println("普通手机没有拍照功能");
}
}
// 5. 具体类:拍照手机(继承 Phone,真正能拍照)
class PhotoPhone extends Phone {
@Override
public void takePhoto() {
System.out.println("拍照手机拍出美美的照片");
}
}
// 6. 具体类:单反照相机(继承 Camera,真正能拍照)
class SLR extends Camera {
@Override
public void takePhoto() {
System.out.println("单反照相机拍出专业级照片");
}
}
// 7. 具体类:数码照相机(继承 Camera,真正能拍照)
class DigitalCamera extends Camera {
@Override
public void takePhoto() {
System.out.println("数码照相机拍出高清照片");
}
}
// 8. 主类:测试
public class TestPhotograph {
public static void main(String[] args) {
Photograph[] devices = new Photograph[4];
devices[0] = new PhotoPhone(); // 拍照手机
devices[1] = new SLR(); // 单反照相机
devices[2] = new DigitalCamera(); // 数码照相机
devices[3] = new NormalPhone(); // 普通手机
for (Photograph p : devices) {
p.takePhoto();
}
}
}