package pro;
public class pro2 {
public void print(Inkbox inkbox,Paper paper){
System.out.println("使用"+inkbox.getColor()+"墨盒在"+paper.getSize()+"纸张上打印。");
}
public static void main(String[] args) {
pro2 p=new pro2();
Inkbox l=new ColorInkBox();
Inkbox ll=new GrayInkBox();
Paper p1=new A4Paper();
Paper p2=new B5paper();
p.print(l, p2);
}
}
interface Inkbox{
public String getColor();
}
interface Paper{
public String getSize();
}
class ColorInkBox implements Inkbox{
public String getColor(){
return "彩色";
}
}
class GrayInkBox implements Inkbox{
public String getColor(){
return "黑白";
}
}
class A4Paper implements Paper{
public String getSize(){
return "A4";
}
}
class B5paper implements Paper{
public String getSize(){
return "B5";
}
}
package pro;
public class pro1 {
private Photo p;
public void setPhoto(Photo p){
this.p=p;
}
public void takephoto(){
p.takephoto();
}
public static void main(String[] args) {
pro1 tp=new pro1();
Photo p1=new PhotoCall();
tp.setPhoto(p1);
tp.takephoto();
Photo p2=new DigitalCamera();
tp.setPhoto(p2);
tp.takephoto();
}
}
interface Photo{
void takephoto();
}
class Call{
}
class PhotoCall extends Call implements Photo{
public void takephoto(){
System.out.println("use photocall");
}
}
class Camera implements Photo{
public void takephoto(){
System.out.println("use camera takephoto");
}
}
class DigitalCamera extends Camera{
public void takephoto(){
System.out.println("use digitalcamera");
}
}