JAVA面向接口编程

JAVA面向接口编程

小狗在不同环境条件下可能呈现不同的状态,小狗通过调用 cry()方法体现自己的当前的状 态。要求用接口封装小狗的状态。具体要求如下。

• 编写一个接口 DogState,该接口有一个名字为 void showState()的方法。
• 编写 Dog 类,该类中有一个 DogState 接口声明的变量 state。另外,该类有一个 cry()方 法,在该方法中让接口 state 回调 showState()方法。即 Dog 对象通过 cry()方法来体现 自己目前的状态。
• 编写若干个实现 DogState 接口的类,负责刻画小狗的各种状态。
• 编写主类,在主类中用 Dog 创建小狗,并让小狗调用 cry 方法体现自己的状态

1、使用方法:implements可以实现多个接口
2、接口使用interface关键字进行声明

interface DogState {
   public void showState(); 
} 

DogState为接口
3、创建多个实现接口的类

class SoftlyState implements DogState {
   public void showState() {
        System.out.println("主人在,听主人的命令");
   } 
   //重写public void showState() 
} 
class MeetEnemyState implements DogState {
      public void showState() {
        System.out.println("见到主人的敌人,上前咬他");
   } 
   //重写public void showState()  
}
   class MeetFriendState implements DogState {
      public void showState() {
        System.out.println("见到主人的朋友,上前欢迎");
   } 
   //重写public void showState() 
}

在不同的类中,使用重写函数的方法
4、创建小狗类,创建 DogState 接口声明的变量 state

 class Dog {
   DogState  state;
   public void cry() {
     state.showState();
   }
   public void setState(DogState s) {
     state = s;   
   } 
} 

5、创建主函数调用各个接口


public class E {
   public static void main(String args[]) {
     Dog yellowDog =new Dog();
     yellowDog.setState(new SoftlyState()); 
    yellowDog.cry();
     yellowDog.setState(new MeetEnemyState());
     yellowDog.cry();
     yellowDog.setState(new MeetFriendState());
     yellowDog.cry();
    }
 }

6、运行结果
JAVA面向接口编程_第1张图片

你可能感兴趣的:(java,java)