java接口的一个小程序,出现了空指针异常,求大神

//接口小测试3
interface Introduceable //detail()接口
{
public String detail();
}

interface PrinterFace //打印机接口
{
public void print(String content);
}

class Teacher implements Introduceable
{
public Teacher(){};
public String detail()
{
return "本人是软件教员";
}
}

class Student implements Introduceable
{
public Student(){};
public String detail()
{
return "本人是软件学员";
}
}

class BlackPrinter implements PrinterFace
{
public BlackPrinter(){};
public void print(String content)
{
System.out.println("黑白打印");
System.out.println(content);
}
}

class ColorPrinter implements PrinterFace
{
public ColorPrinter(){};
public void print(String content)
{
System.out.println("彩色打印");
System.out.println(content);
}
}

class School implements Introduceable
{
private PrinterFace pri;
public School(){};
public void setPrinter(PrinterFace p)
{
pri=p;
}
public String detail()
{
return "这里是学校";
}
public void print(Introduceable intro) //只要是实现了Introduceable接口的类的对象都可以直接调用print方法
{//大大提高了系统的可拓展性和维护性
pri.print(intro.detail());
}
}

public class interFaceTest3
{
public static void main(String[] args)
{
School sch=new School(); //创建学院实例
Teacher tea=new Teacher();
Student stu=new Student();
sch.print(tea);
sch.print(stu);
sch.setPrinter(new BlackPrinter()); //使用黑白打印机打印教师信息
sch.print(tea);
sch.setPrinter(new ColorPrinter());//使用彩色打印机打印教师信息
sch.print(tea);

}

一下是错误信息:

Exception in thread "main" java.lang.NullPointerException
at School.print(interFaceTest3.java:64)
at interFaceTest3.main(interFaceTest3.java:75)
public void print(Introduceable intro) //毕洞只要是搏轿实现了Introduceable接口的类的对象都可以直接调基数肆用print方法
{//大大提高了系统的可拓展性和维护性
pri.print(intro.detail());
}
在调用sch.print(tea)时,你的pri还为空呢,你应该先sch.setPrinter(new BlackPrinter());,然后才print
1,sch.print(tea);
2,sch.print(stu);
3,老或瞎sch.setPrinter(new BlackPrinter()); //使用黑白打印机打印侍空教师信息
4,sch.print(tea);
5,sch.setPrinter(new ColorPrinter());//使用彩色打印机打印教师信息
6,sch.print(tea);

上面的1,2行中,sch实例中的private PrinterFace pri都没初始化,
你把第3行放到第1行团缺”1,sch.print(tea);“的前面就没事了
你没有为School里的pri初始化孙轮

School sch = new School(); // 创建学院实例
sch.setPrinter(new PrinterFace() {
public void print(String content) {

}
});

这样就可以了

结果:
黑白打则亩信印
本人是软耐尺件教员
彩色打印
本人是软件教员