类和接口作为类的成员变量

1.学校类

package 内部类;

public class School {
    private String name;

    public School(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

2.专业接口

package 内部类;

public interface Project {
    void ZhuanYe();
}

3.主类

package 内部类;
public class TEST {
    public static void main(String[] args) {
       Student stu = new Student();
       School sh = new School("WUST");
       stu.setSh(sh);
       /*
       Project pro = new Project() {
           @Override
           public void ZhuanYe() {
               System.out.println("网络工程");
           }
       };
       stu.setPr(pro);
       注释里为匿名内部类写法*/	
       stu.setPr(new Project() {		//匿名内部类和匿名对象的写法
           @Override
           public void ZhuanYe() {
               System.out.println("计算机科学与技术");
           }
       });
       stu.fun();
    }
}