I have three classes Product, Cart, Shop. Cart class inherits with Product class. Shop class has the main function and I am trying to create an object of Cart class.
but it's not getting created. It's my homework assignment they mention that I have to use ArrayList in Cart class and create an object of Cart in Shop Class.
if I inherit Cart class with Shop class
public class Shop extends Cart{ ....  then I can use Cart class Methods but I can't submit it like this I have to create an object of Cart in Shop and have to use it
Error:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "Cart.a
ddItem(Product)" because "this.myCart" is null
        at BookShop.addItem(BookShop.java:109)
        at BookShop.showGUI(BookShop.java:42)
        at BookShop.main(BookShop.java:10)
here are the classes these are a piece of code, not the whole program.
Product.java
public class Product {
    private String name;
    private int quantity;
    public Product(){
        System.out.println("Object Created");
        name = null;
        quantity = 0;
    }
    
    public Product(String name,int quantity){
        this.name = name;
        this.quantity = quantity;
    }
    public Product(Product p){
        this.name = p.name;
        this.quantity = p.quantity;
    }
    public void setName(String Name){
        this.name = Name;
    }
    public void setQuantity(int quantity){
        this.quantity = quantity;
    }
    public String getName(){
        return this.name;
    }
    public int getQuantity(){
        return this.quantity;
    }
}
Cart.java
import java.util.ArrayList;
public class Cart extends Product{
    private ArrayList<Product> CartItems;
    public Cart(){
        super();
        System.out.println("Object Created");
        CartItems = new ArrayList<Product>();
        
    }
    public Cart(String name,int quantity){
        super(name,quantity);
    }
    public Cart(Cart c){
        this.CartItems = c.CartItems;
    }
    public void addItem(Product p){
        this.CartItems.add(p);
    }
    public void setCart(ArrayList<Product> cart){
        CartItems = cart;
    }
    public ArrayList<Product> getList(){
        return this.CartItems;
    }
}
Shop.java
import javax.swing.JOptionPane;
public class Shop{
    public Cart myCart;
    public static void main(String[] args) {
        Shop myShop = new Shop();
        myShop.showGUI();
    }
    public Shop(){
        
    }
    public Shop(Shop s){
        this.myCart = s.myCart ;
    }
    public Shop(Cart c){
        this.myCart.setCart(c.getList());
    }
    public void showGUI(){
        
        String input= JOptionPane.showInputDialog("Enter Quantity");
        Integer qualtiy = Integer.parseInt(input);
        Product p = new Product("Book", qualtiy);
        this.myCart.addItem(p);
        }
    
}
