刻画小狗状态java_Java第6章-接口与多态实验2(小狗的状态)

本文通过一个Java编程实验展示了面向接口编程的概念。实验中,`Dog`类持有一个`DogState`接口类型的变量,通过设置不同的状态(如`MeetEnemyState`, `MeetFriendState`, `softlystate`),模拟小狗遇到不同情况时的行为。实验代码展示了如何通过接口和多态来灵活改变对象的行为,从而体现了接口的抽象性和多态性。" 111890308,10537591,Vector VN1600系列CAN(FD)与LIN网络接口解析,"['CAN总线', 'LIN总线', '接口硬件', '数据记录', '汽车电子']
摘要由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();

}

}

运行结果:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值