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

实验目的:

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

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

运行结果:










总结:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早日退休过上不劳而获生活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值