2016/08/20 继承练习题(1)

题目描述:
有动物猫、狗、猪、羊和鸡,他们有不同的叫声,用继承,编写代码,输入动物的名字,输出动物的名称以及特有的叫声。

做题步骤:
定义一个父类Animal,存储他们共有的属性和方法。代码如下:

package com.jer.ch09.animal;

/**
 * 动物类
 * @author Meizijiu
 *
 */
public class Animal {

    protected String name;


    public Animal(String name) {
        super();
        this.name = name;
    }


    public void speak() {
        System.out.println("我是一只"+name);
    }   
}

定义各动物类,存储其特有属性以及方法,并且继承父类Animal:

package com.jer.ch09.animal;

public class Cat extends Animal {

    public Cat() {      //构造是不能被继承的
        super(AnimalFactory.CAT);
        // TODO Auto-generated constructor stub
    }

    public void speak() {
        super.speak();
        System.out.println("喵喵喵~~~~");
    }
}
package com.jer.ch09.animal;

public class Dog extends Animal {

    public Dog() {
        super(AnimalFactory.DOG);
        // TODO Auto-generated constructor stub
    }

    public void speak() {
        super.speak();
        System.out.println("汪汪汪~~~~");
    }
}
package com.jer.ch09.animal;

public class Pig extends Animal {

    public Pig() {
        super(AnimalFactory.PIG);
        // TODO Auto-generated constructor stub
    }

    public void speak() {
        super.speak();
        System.out.println("哼哼哼~~~~");
    }
}
package com.jer.ch09.animal;

public class Poult extends Animal {

    public Poult() {
        super(AnimalFactory.POULT);
        // TODO Auto-generated constructor stub
    }

    public void speak() {
        super.speak();
        System.out.println("咯咯咯~~~~");
    }
}
package com.jer.ch09.animal;

public class Sheep extends Animal {

    public Sheep() {
        super(AnimalFactory.SHEEP);
        // TODO Auto-generated constructor stub
    }

    public void speak() {
        super.speak();
        System.out.println("咩咩咩~~~~");
    }
}

定义一个工厂类:

package com.jer.ch09.animal;

public class AnimalFactory {

    public static final String CAT="猫";
    public static final String DOG="狗";
    public static final String PIG="猪";
    public static final String SHEEP="羊";
    public static final String POULT="鸡";

    public static Animal getAnimal(String name) {
        switch (name) {
        case CAT:
            return new Cat();
        case DOG:
            return new Dog();
        case PIG:
            return new Pig();
        case SHEEP:
            return new Sheep();
        case POULT:
            return new Poult();

        default:
            return null;
        }
    }
}

最后定义一个测试类:

package com.jer.ch09.animal;

import java.util.Scanner;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        Animal animal = null;
        while (true) {
            System.out.print("请输入动物名称:");
            animal = AnimalFactory.getAnimal(input.next());
            if (animal!=null) {
                animal.speak();
                input.close();
                return;
            }else {
                System.out.println("您输入的动物名称有误");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值