java实验小狗状态_Java第6章-接口与多态实验2(小狗的状态)

这个Java实验展示了面向接口编程的概念,通过Dog类持有DogState接口类型的变量来模拟小狗的不同状态,如遇到敌人、朋友和在主人面前的行为。实验中定义了DogState接口及多个实现接口的类,如MeetEnemyState、MeetFriendState和SoftlyState。在Test类中创建Dog实例并改变其状态,调用showstate()方法展示不同情境下的小狗行为。
摘要由CSDN通过智能技术生成

实验目的:

面向接口编程的思想,所为面向接口编程,就是设计某种重要的类时,不让该类面向具体的类,而是面向接口,即所设计类中的重要数据是接口声明的变量而不是具体类声明的对象。

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();

}

}

运行结果:

0d8a4ad0182cd99238d0a7d2515e037e.png

f7d71e0dbe81909cb81db58fb339e886.png

总结:

实现接口的类必须具体实现接口内的方法,以便定义接口变量时,可根据不同的传参,实现接口里面的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值