java学习笔记day06—继承抽象

继承概述
在这里插入图片描述
在这里插入图片描述
区分子类中重名问题
在这里插入图片描述
重写
在这里插入图片描述
在这里插入图片描述
构造方法的使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图解

在这里插入图片描述
在这里插入图片描述

抽象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码实现:
User类

package cn.itcast.day06.Demo03;

/**
 * @Copyright (C), 2020-2020, 
 * @ClassName: User
 * @Author: 
 * @E-mail: 1248164682@qq.com
 * @Date: 2020/1/28 20:27
 * @Version: V1.0
 * @Description: 对该类的描述
 */

public class User {
    private String name;
    private int money;

    public User() {
    }

    public User(String name, int money) {
        this.name = name;
        this.money = money;
    }
    //展示一下当前用户有多少钱
    public void show(){
        System.out.println("我叫:"+name+",我有多少钱:"+money);
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}

Manager类:

package cn.itcast.day06.Demo03;

import java.util.ArrayList;

/**
 * @Copyright (C), 2020-2020, 
 * @ClassName: Manager
 * @Author: 
 * @E-mail: 1248164682@qq.com
 * @Date: 2020/1/28 20:32
 * @Version: V1.0
 * @Description: 对该类的描述
 */

public class Manager extends User{
    public  Manager(){

    }

    public Manager(String name, int money) {
        super(name, money);
    }

    public ArrayList<Integer> send(int totalMoney,int count){
        ArrayList<Integer> redList = new ArrayList<>();
        //先看看自己有多少钱
        int leftMoney = super.getMoney();
        if(totalMoney > leftMoney){
            System.out.println("余额不足");
            return redList;    //返回空
        }
        //扣钱,重新设置余额
        super.setMoney(leftMoney-totalMoney);
        //发红包平均分为count份
        int avg = totalMoney/count;
        int mod = totalMoney%count; //零头

        //除不开的零头,包在最后一个红包
        for (int i = 0; i < count-1; i++) {
            redList.add(avg);
        }
        //最后一个红包
        int last = avg+mod;
        redList.add(last);
        return redList;

    }
}

Member类:

package cn.itcast.day06.Demo03;

import java.util.ArrayList;
import java.util.Random;

/**
 * @Copyright (C), 2020-2020, 
 * @ClassName: Member
 * @Author: 
 * @E-mail: 1248164682@qq.com
 * @Date: 2020/1/28 20:53
 * @Version: V1.0
 * @Description: 对该类的描述
 */

public class Member extends User{
    public Member() {
    }

    public Member(String name, int money) {
        super(name, money);
    }
    public void receive(ArrayList<Integer> list){
        //随便抽取一个
        //随机获取一个集合中的编号
        int index = new Random().nextInt(list.size());
        //根据索引,从集合中删除
        Integer delta = list.remove(index);
        //当前成员有多少钱
        int money = super.getMoney();
        super.setMoney((money+delta));
    }
}

Main类:

package cn.itcast.day06.Demo03;

import javax.sound.midi.Soundbank;
import java.util.ArrayList;

/**
 * @Copyright (C), 2020-2020, 
 * @ClassName: Main
 * @Author: 
 * @E-mail: 1248164682@qq.com
 * @Date: 2020/1/28 20:57
 * @Version: V1.0
 * @Description: 对该类的描述
 */

public class Main {
    public static void main(String[] args) {
        Manager manager = new Manager("群主",100);
        Member one = new Member("a",0);
        Member two = new Member("b",0);
        Member three = new Member("c",0);

        manager.show();
        one.show();
        two.show();
        three.show();
        System.out.println("=============================================");
        ArrayList<Integer> redList = manager.send(20,3);
        one.receive(redList);
        two.receive(redList);
        three.receive(redList);

        manager.show();
        one.show();
        two.show();
        three.show();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值