java案例--使用抽象类实现不同对象的相同特征

1.白色4条腿的北极熊(Bear)会吃(吃蜂蜜)和抓鱼(catchFish)

2.黑色4条腿的大熊猫(Panda)会吃(吃竹子)和爬树(climbTree)

 要求:

             把北极熊和大熊猫的共性提取动物类(Animal)中,使用抽象类,在Test测试类中创建北极熊和大熊猫对象,调用方法实现控制台输出;

参考方案:

                1.定义一个动物类,里面有颜色和腿的条数,两个动物的共性就是吃的方法,所以可以把共性的吃的方法抽取出来,由于这个吃的方法内容无法确定,所以定义成抽象方法
                2.定义出来的Bear类和Panda类都要继承动物类,重写吃的方法
                3.定义北极熊和大熊猫的特有方法
                4.在测试类中创建两个动物的对象,为属性赋值,并调用方法

 实现步骤:

1.​定义一个Animal类,定义两个私有属性(颜色,个数),对应的构造以及get/set方法

public abstract class Animal {

    private String color;
    private int tuiNum;

    public abstract void eat();//抽象吃的方法,在子类中实现
    
    public Animal() {
    }

    public Animal(String color, int tuiNum) {
        this.tuiNum = tuiNum;
        this.color = color;
    }

    public int getTuiNum() {
        return tuiNum;
    }

    public void setTuiNum(int tuiNum) {
        this.tuiNum = tuiNum;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

 2.定义子类Bear(北极熊) 和Panon(大熊猫类) 继承Animal类,重写父类中的抽象方法eat(),并在子类中写出各种不同的方法

public class Bear extends Animal {
//北极熊
    
    public Bear() {
        super();//调用父类的无参构造器
    }
    
    public Bear(String color, int tuiNum) {
        super(color, tuiNum);//调用父类的有参构造器方便创建对象时候初始化;
    }
    
    @Override
    public void eat() {
        System.out.println(getColor() + getTuiNum() + "条腿的北极熊正在吃蜂蜜~~");
    }
    
    public void catchFish() {
        System.out.println(getColor() + getTuiNum() + "的北极熊正在抓鱼~~");
    }
public class Panda extends Animal {
    //大熊猫
    public Panda() {
        super();
    }

    public Panda(String color, int tuiNum) {
        super(color, tuiNum);
    }

    @Override
    public void eat() {
        System.out.println(getColor() + getTuiNum() + "条腿的大熊猫正在吃竹子~~");
    }

    public void climbTree() {
        System.out.println(getColor() + getTuiNum() + "条腿的大熊猫正在爬树~~");
    }
}

3.测试类中创建对象,调用各种方法进行输出

public class Test {
    public static void main(String[] args) {

        //1. 创建北极熊对象 b,颜色赋值为白色,腿的个数赋值为4
        Bear B = new Bear("白色", 4);
        //2. 调用北极熊对象b的吃方法
        B.eat();
        //3.调用北极熊对象b的抓鱼方法
        B.catchFish();

        Panda P=new Panda("黑色",4);
        P.eat();
        P.climbTree();
    }
}

 输出结果:

                        

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值