码迷,mamicode.com
首页 > 其他好文 > 详细

多态练习题

时间:2020-11-06 00:54:15      阅读:19      评论:0      收藏:0      [点我收藏+]

标签:class   null   static   sys   没有   条件   system   get   女性   

定义一个类是People,又定义两个类,一个Man类,另一个是Woman类,Man 类中有个属性是老婆,有一个方法是lol,Woman类中有个属性是老公,有一个方法 是shopping,还有一个方法是生孩子,先判断是否有老公,如果有老公,就创建一 个对象,50%概率是男孩,50%概率是女孩,有一个返回值,最后如果生的是男孩 就玩lol,如果是个女孩就去购物shopping。

代码:

//父类
public class People {

}

男人类:

/**
 * 男性
 */
public class Man extends People{
    //老婆属性
    private Woman wife;

    public Woman getWife() {
        return wife;
    }

    public void setWife(Woman wife) {
        this.wife = wife;
    }

    //lol方法
    public void lol(){
        System.out.println("玩游戏,真好玩!!!");
    }
}

女人类:

/**
 * 女性
 */
public class Woman extends People {
    //老婆
    private Man husband;

    public Man getHusband() {
        return husband;
    }

    public void setHusband(Man husband) {
        this.husband = husband;
    }

    //购物
    public void shopping() {
        System.out.println("商场购物真开心!!!");
    }

    //生孩子 先判断是否有老公,如果有老公就创建一个对象一半是女孩一般是男孩
    public People haveBaby() {
        /*
         * ·1先判断有没有老公
         * ·2如果条件成立就执行生孩子的逻辑
         * ·3条件不成立就返回一个null
         *
         * */
        //定义一个空people类型的变量
        People p = null;

        if (husband == null) {
            return null;
        } else {
            //表明有老公 可以生孩子
            Random r = new Random();//1  0
            if (r.nextInt(2) == 0) {
                //男孩
                Man boy = new Man();
                // return boy;
                p = boy;
            } else {
                //女孩
                Woman girl = new Woman();
                //return girl;
                p = girl;
            }
        }
        return p;
    }
}

测试类:

    public static void main(String[] args) {
        //测试生孩子  男孩就玩lol  女孩就购物
        Man man = new Man();
        Woman woman = new Woman();
        man.setWife(woman);
        woman.setHusband(man);

        People people = woman.haveBaby();//向上转型
        if (people == null) {
            System.out.println("你没有老公!");
        } else {
            if (people instanceof Man) {
                Man m = (Man) people;//向下转型
                m.lol();
            } else if (people instanceof Woman) {
                Woman w = (Woman) people;//向下转型
                w.shopping();
            }
        }

    }

多态练习题

标签:class   null   static   sys   没有   条件   system   get   女性   

原文地址:https://blog.51cto.com/14954368/2546717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!