实验目的:
面向接口编程的思想,所为面向接口编程,就是设计某种重要的类时,不让该类面向具体的类,而是面向接口,即所设计类中的重要数据是接口声明的变量而不是具体类声明的对象。
Dog.java
public class Dog {
DogState state;//声明接口的变量
public void cry(){
state.showstate();//调用接口里面的函数
}
public void setstste(DogState s){
state=s;
}
}
DogState.java
public interface DogState {
public abstract void showstate();
}
MeetEnemyState.java
public class MeetEnemyState implements DogState{//实现接口的类
@Override
public void showstate() {
System.out.println("遇到敌人狂叫!");
}
}
MeetFriendState.java
public class MeetFriendState implements DogState{//实现接口的类
@Override
public void showstate() {
System.out.println("遇到朋友晃动尾巴表示欢迎!");
}
}
softstate.java
public class softlystate implements DogState{//实现接口的类
@Override
public void showstate() {
System.out.println("在主人面前听主人的话!");
}
}
Test,java
public class Test {
public static void main(String[]args){
Dog Aqi=new Dog();
Aqi.setstste(new softlystate());//设置它的状态
Aqi.cry();//通过dog类里面的方法调用接口里面的showstate();
Aqi.setstste(new MeetEnemyState());
Aqi.cry();
Aqi.setstste(new MeetFriendState());
Aqi.cry();
}
}
运行结果:
总结:
实现接口的类必须具体实现接口内的方法,以便定义接口变量时,可根据不同的传参,实现接口里面的方法。