java學習筆記day06—繼承抽象

繼承概述
在這裏插入圖片描述
在這裏插入圖片描述
區分子類中重名問題
在這裏插入圖片描述
重寫
在這裏插入圖片描述
在這裏插入圖片描述
構造方法的使用
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
圖解

在這裏插入圖片描述
在這裏插入圖片描述

抽象

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
代碼實現:
User類

package cn.itcast.day06.Demo03;

/**
 * @Copyright (C), 2020-2020, 
 * @ClassName: User
 * @Author: 
 * @E-mail: [email protected]
 * @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: [email protected]
 * @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: [email protected]
 * @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: [email protected]
 * @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();
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章