14.instanceof修改测试类

package cn.jbit.epet.override;
/**
 * 宠物类,狗狗和企鹅的父类
 */
public abstract class Pet {
    private String name = "无名氏";// 昵称
    private int health = 100;// 健康值
    private int love = 20;// 亲密度

    /**
     * 无参构造方法
     */
    public Pet() {
    }
    /**
     * 有参构造方法
     * @param name  昵称
     */
    public Pet(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getHealth() {
        return health;
    }

    public void setHealth(int health) {
        if(health<0||health>100){
            System.out.println("健康值应该在0至100之间,默认值为60。");
            this.health=60;
            return;
        }
        this.health = health;
    }

    public int getLove() {
        return love;
    }

    public void setLove(int love) {
        if(love<0||love>100){
            System.out.println("亲密度应该在0至100之间,默认值为10。");
            this.love=10;
            return;
        }
        this.love = love;
    }

    /**
     * 输出宠物信息
     */
    public void print() {
        System.out.println("宠物的自白:\n我的名字叫" +
                this.name + ",我的健康值是" + this.health
                + ",我和主人的亲密程度是" + this.love + "。");
    }

    public abstract void toHospital();

    /**
     * 抽象方法eat(),负责宠物吃饭功能。
     */
    public abstract void eat();
}
package cn.jbit.epet.override;

/**
 * 狗狗类,宠物的子类。
 */
public class Dog extends Pet {
    private String strain;// 品种

    public Dog(){}

    /**
     * 有参构造方法。
     * @param name   昵称
     * @param strain   品种
     */
    public Dog(String name, String strain) {
        super(name);
        this.strain = strain;
    }

    public void setStrain(String strain) {
        this.strain = strain;
    }
    public String getStrain() {
        return strain;
    }

    public void print(){
        super.print();
        System.out.println("我是一只"+this.getStrain()+"犬。");
    }

    public void toHospital() {
        this.setHealth(60);
        System.out.println("打针、吃药");
    }

    /**
     * 实现吃食方法。
     */
    public void eat() {
        if(getHealth()>=100){
            System.out.println("狗狗"+this.getName() +"吃饱了,不需要喂食了!");
        }else{
            this.setHealth(this.getHealth()+3);
            System.out.println("狗狗"+this.getName() + "吃饱啦!健康值增加3。");
        }
    }

    //狗狗叼飞碟
    public void catchingFlyDisc(){
        System.out.println("狗狗叼飞碟");
    }
}
package cn.jbit.epet.override;
/**
 * 企鹅类,宠物的子类。
 */
public class Penguin extends Pet {
    private String sex;// 性别
    public Penguin(){}
    /**
     * 有参构造方法。
     * @param name 昵称
     * @param sex 性别
     */
    public Penguin(String name, String sex) {
        super(name);
        this.sex = sex;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }    

    public void print(){
        super.print();
        System.out.println("我的性别是"+this.getSex()+"。");
    }

    public void toHospital() {
        this.setHealth(70);
        System.out.println("吃药、疗养");
    }
    /**
     * 实现吃食方法。
     */
    public void eat() {
        if(getHealth()>=100){
            System.out.println("企鹅"+this.getName() +"吃饱了,不需要喂食了!");
        }else{
            this.setHealth(this.getHealth()+5);
            System.out.println("企鹅"+this.getName() + "吃饱啦!健康值增加3。");
        }
    }

    public void swim(){
        System.out.println("企鹅在南极游泳");
    }
}
public class Test {
    public static void main(String[] args) {
        //Pet pet = new Dog();
        Pet pet=new Penguin();
        //使用instanceof判断具体宠物类型,调用特定宠物方法
        if (pet instanceof Dog) {
            Dog dog = (Dog) pet;
            dog.catchingFlyDisc();//执行狗狗特有的方法接飞盘
        } else if (pet instanceof Penguin) {
            Penguin penguin = (Penguin) pet;
            penguin.swim();//执行企鹅特有的方法在南极游泳
        }
    }
}
时间: 2024-10-03 17:09:42

14.instanceof修改测试类的相关文章

SpringBoot高版本修改为低版本时测试类报错解决

有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBoot项目. 这是如果想要换成版本,就可以在项目创建好了之后,在pom文件中直接将版本修改过来. 如下所示 比如在创建项目时默认的版本为2.2.2版本: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artif

修改DailyRollingFileAppender类及其父类源码,解决以日期作为日志文件名时,当天的文件没有日期后缀

题记------学习别人的精髓,并加以总结,消化吸收,这就是提高!!!  DailyRollingFileAppender生成的文件是不带时间戳的,必须在某个时间点后,才对原来文件加上时间戳进行重命名,这样就有很大的问题,当天的日志,没有时间戳,而且如果在log4j.properties配置文件路径采用log4j.appender.dailyFile.File=E:/logs/log_或者log4j.appender.dailyFile.File=${webapp.root}/WEB-INF/l

WebService之CXF注解之四(测试类)

TeacherTest.java: /** * @Title:TeacherTest.java * @Package:com.test.service * @Description: * @author:Youhaidong(游海东) * @date:2014-5-5 下午11:14:09 * @version V1.0 */ package com.test.service; import org.apache.cxf.interceptor.LoggingInInterceptor; imp

加密测试类

1 /** 2 * 3des加密: 3 */ 4 package com.test; 5 6 import java.security.Key; 7 import java.security.SecureRandom; 8 import javax.crypto.Cipher; 9 import javax.crypto.KeyGenerator; 10 //import sun.misc.BASE64Decoder; 11 //import sun.misc.BASE64Encoder; 12

斗地主洗牌发牌测试类

1 package com.hxl; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.HashMap; 6 import java.util.TreeSet; 7 8 /** 9 * 这是一个斗地主洗牌发牌的测试类 10 * 11 * @author Schiller_Hu 12 * @version v1.0 13 * @since 2018.2.20 14 * 15 */ 1

mongoDB工具类以及测试类【java】

java操作mongo工具类 package Utils; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCurs

Injection of autowired dependencies failed; autowire 自动注入失败,测试类已初始化过了Spring容器。

1 严重: StandardWrapper.Throwable 2 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'searchController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreatio

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册、登录、存取款、本行转账、跨行转账、销户、特殊操作参数、多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合)

Java基础知识综合练习_使用集合存储_高级银行系统的搭建(注册.登录.存取款.本行转账.跨行转账.销户.特殊操作参数.多个客户对象存入到银行类的集合,多个银行对象存入总测试类集合) 1) 定义bank类 属性有银行名称和存放客户的ArrayList集合, 有开户方法. 销户方法. 存钱方法. 取钱方法. 转账方法(本行转账.跨行转账) 2) 定义customer类 属性有账户名.密码.余额 3) 定义测试类创建一个银行集合用于存放bank对象创建几个bank对象:分别叫华夏银行.工商银行.招商

P1-10:编写测试类

新建测试类 编写测试类 1 package com.dszh.demo2; 2 3 import com.dszh.demo2.entity.User; 4 import com.dszh.demo2.mapper.UserMapper; 5 import org.junit.Test; 6 import org.junit.runner.RunWith; 7 import org.springframework.beans.factory.annotation.Autowired; 8 imp