Khởi tạo một hoặc nhiều đối tượng trong Class Abstract

Em có Class NhanVien sau:

package NhanVien;

import java.util.ArrayList;
import java.util.Scanner;

public abstract class NhanVien1 {
	protected ArrayList<NhanVien1> list=new ArrayList<NhanVien1>();
	protected String ten;
	protected int ma;
	Scanner sc=new Scanner(System.in);
	public NhanVien1() {
		super();
	}
	public NhanVien1(String ten, int ma) {
		super();
		this.ten = ten;
		this.ma = ma;
	}
	public String getTen() {
		return ten;
	}
	public void setTen(String ten) {
		this.ten = ten;
	}
	public int getMa() {
		return ma;
	}
	public void setMa(int ma) {
		this.ma = ma;
	}
	public void nhap() {
		System.out.println("Nhập tên & mã: ");
		// Chổ này làm sao để nhập một đối tượng vào list vậy anh chị?
	}
	public abstract double tinhLuong();
}

Class QuanLy:

package NhanVien;

public class QuanLy extends NhanVien1{
	private String thuong;
	public String getThuong() {
		return thuong;
	}
	public QuanLy() {
		super();
	}
	public QuanLy(String ten, int ma, String thuong) {
		super(ten, ma);
		this.thuong = thuong;
	}
	public void setThuong(String thuong) {
		this.thuong = thuong;
	}
	public double tinhLuong() {
		return 0;
	}
	public void nhap() {
		super.nhap();
		//Đoạn này làm sao để thêm thuộc tính "thuong" vào trong cái list được vậy anh chị?
	}
	
}

Hàm main:

package NhanVien;

public class MainNV {

	public static void main(String[] args) {
		NhanVien1 nv=new QuanLy();
		nv.nhap();
	}

}

Anh chị chỉ giúp em làm sao để mình có thể nhập các thuộc tính vào vậy ạ?
Em cám ơn.

Theo mình nghĩ thì bạn ArrayList ở class QuanLy super() tất cả thông tin từ nhân viên và add nó vào List.
Theo kiểu add: list.add(new QuanLy(Theo Constructor));

Làm vậy nếu mình thêm 1 cái class thì phải tạo thêm một cái ArrayList nữa bên class mới tạo hả anh?
Có cách nào để mình chỉ tạo 1 cái Arraylist mà dùng hết từ class cha tới class con không anh?
Khi truy xuất thì mình duyệt theo điều kiện để xuất.

Nếu như vậy, thì mình nghĩ bạn nên tạo hết các lớp class và tạo 1 class chính. Ví dụ ở trên là NhanVien và QuanLy thì bạn tạo thêm 1 class chung là Company chẳng hạn.
Sau đó tạo 1 ArrayList< QuanLy> quanLy = new ArrayList<>(); và sau đó thêm vào ArrayList bằng cách quanLy.add(new NhanVien(Constrcutor) hoặc quanLy.add(new QuanLy(Constructor))

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?