多态练习题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态练习题相关的知识,希望对你有一定的参考价值。
定义一个类是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();
}
}
}
以上是关于多态练习题的主要内容,如果未能解决你的问题,请参考以下文章