zoukankan      html  css  js  c++  java
  • 16.抽象类

    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("宠物的自白:
    我的名字叫" + 
                    this.name + ",我的健康值是" + this.health 
                    + ",我和主人的亲密程度是" + this.love + "。");
        }
        public abstract void toHospital();
    }
    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("打针、吃药");
        }
    
    }
    package cn.jbit.epet.override;
    
    public class Master {
        // 给宠物看病
        public void cure(Pet pet) {
            if (pet.getHealth() < 50)
                pet.toHospital();        
        }
    }
    package cn.jbit.epet.override;
    /**
     * 企鹅类,宠物的子类。
     */
    public class Penguin extends Pet {
        private String sex;// 性别
        /**
         * 有参构造方法。
         * @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("吃药、疗养");
        }
    }
    package cn.jbit.epet.override;
    
    public class Test {
        public static void main(String[] args) {
            Pet dog=new Dog();
            dog.setHealth(10);
            dog.print();
            System.out.println("*************************");
            Master master=new Master();
            master.cure(dog);
            dog.print();
        }
    }
  • 相关阅读:
    为什么JSP的内置对象不需要声明
    什么不能输?
    可采用两种方法得到一个EJB对象
    EJB
    J2EE之JPA
    Application、Activity Stack 和 Task的区别
    关于 android屏幕适配
    JSP 向 JavaScript 中传递数组
    Android 图片异步加载 加载网络图片
    Android 显示意图和隐式意图的区别
  • 原文地址:https://www.cnblogs.com/xiaotaoxu/p/5536494.html
Copyright © 2011-2022 走看看