利用局部内部类实现接口来解耦合的小案例

下面给大家演示一个利用内部类实现接口的小案例:
一.案例分析,
创建一个Student类对象,有一个study方法;
创建一个Teacher类对象,有一个teach方法;
创建一个School类对象,实现A老师,B老师与A班学生,B班学生的teach方法与study方法的自由组合。

package t1;

//创建学生类的接口
interface Student{
	//待实现方法study()
	void study();
}
//创建老师类的接口
interface Teacher{
	//待实现方法teach()
	void teach();
}
class School{
	//在 teachers方法中利用实现Teacher类接口
	public  Teacher teachers(int a){//通过传入参数来选择老师
		class TeacherA implements Teacher{
			public void teach(){
				System.out.println("TeacherA");
			}
		}
		class TeacherB implements Teacher{
			public void teach(){
				System.out.println("TeacherB");
			}
		}
		if(a % 2 == 0) return new TeacherA();
		else return new TeacherB();
	}
	//在 students方法中利用返回实现Student类接口
	public Student students(int s){//通过传入参数来选择学生
		class StudentA implements Student{
			public void study(){
				System.out.println("StudentA");
			}
		}
		class StudentB implements Student{
			public void study(){
				System.out.println("StudentB");
			}
		}
	
		if(s % 2 == 0) return new StudentA();
		else return new StudentB();
	}
}
public class Teach{
	public static void main(String[] args){
		//利用多态来建立老师类的对象
		Teacher t = new School().teachers(1);
			t.teach();
		//利用多态来建立学生类的对象
		Student s = new School().students(0);
			s.study();
	}
}

可以看到,这样做的最大好处就是将Teacher类与Student类完全分离,我们只需要在用到的时候分别去调取就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值