Q:

The required type and my provided parameter are different

I am currently writing code for a scout system I have multiple classes and the hierarchy goes as follows iScoutMember -> Scout(implements iScoutMember) -> BeaverScout(extends Scout). I also have a ScoutList class that handles adding scouts to the ArrayList of scouts and ScoutSystem which makes a menu and uses the methods from the ScoutList class.
The error I get is from the addScout method in the ScoutSystem class when I try to add info for the ArrayList SpecialInterests
This is the error info
Error:(108, 103) java: incompatible types: SpecialInterest cannot be converted to java.util.ArrayList<SpecialInterest>
Error:(112, 103) java: incompatible types: SpecialInterest cannot be converted to java.util.ArrayList<SpecialInterest>
This is the code for the Scout class
import java.util.ArrayList;
public abstract class Scout implements iScoutMember {
private String name;
private String county;
private String dateOfBirth;
private String address;
private String phoneNumber;
private ArrayList<SpecialInterest> specialInterests;

public Scout(String name, String county, String dateOfBirth, String address, String phoneNumber, ArrayList<SpecialInterest> specialInterests) {
    this.name = name;
    this.county = county;
    this.dateOfBirth = dateOfBirth;
    this.address = address;
    this.phoneNumber = phoneNumber;
    this.specialInterests = specialInterests;
}

and this is the code for the SpecialInterest class 
public class SpecialInterest {
private String interestCategory;
private String details;
private String dateBadgeReceived;

public SpecialInterest(String interestCategory, String details, String dateBadgeReceived) {
    this.interestCategory = interestCategory;
    this.details = details;
    this.dateBadgeReceived = dateBadgeReceived;
}

and finally this is the code for the addScout method in the Scout system class
    private void addScout(){
    System.out.println("What kind of scout would you like to add?.");
    System.out.println("1. Beaver Scout");
    System.out.println("2. Cub Scout");
    System.out.println("3. Scouter");
    int option = input.nextInt();
    switch(option){
        case 1:
            System.out.println("Name => ");
            System.out.println("County=> ");
            System.out.println("Date of Birth => ");
            System.out.println("Address => ");
            System.out.println("Contact number => ");
            String name = input.nextLine();
            String county = input.nextLine();
            String dateOfBirth = input.nextLine();
            String address = input.nextLine();
            String phoneNumber = input.nextLine();
            System.out.println("Enter Special Interest Details");
            System.out.println("Special Interest Category");
            System.out.println("Details");
            System.out.println("date Badge Received");
            String interestCategory = input.nextLine();
            String details = input.nextLine();
            String dateBadgeReceived = input.nextLine();

            SpecialInterest sp1 = new SpecialInterest(interestCategory,details,dateBadgeReceived);

            System.out.println("Do you wish to enter another special Interest: Y/y for yes, N/n for no ==> ");
            String ans = input.nextLine();
            ans.toUpperCase();
            if (ans.equals("Y")){
                System.out.println("Parents Phone Number?");
                String parentPhone = input.nextLine();
                BeaverScout s1 = new BeaverScout(name, county, dateOfBirth, address, phoneNumber, sp1, parentPhone);
                scoutList.addScout(s1);
            } else if(ans.equals("N")){
                String parentPhone = "";
                BeaverScout s1 = new BeaverScout(name, county, dateOfBirth, address, phoneNumber, sp1, parentPhone);
                scoutList.addScout(s1);
            }

    }

}
}

This is the line of code that gives me the error 
BeaverScout s1 = new BeaverScout(name, county, dateOfBirth, address, phoneNumber, sp1, parentPhone);

Any and all help will be much appreciated I am completely new to inheritance and to stack overflow so please be patient with me if my question is not formatted properly.

A:

Your question isn't extremely clear, but from what I can tell, you're passing in a single SpecialInterest object (sp1) in the addScout method at:
SpecialInterest sp1 = new SpecialInterest(interestCategory,details,dateBadgeReceived);
//stuff
BeaverScout s1 = new BeaverScout(name, county, dateOfBirth, address, phoneNumber, sp1, parentPhone);

What you probably should do is make a new ArrayList<SpecialInterest> and pass that in, like this
ArrayList<SpecialInterest> sps = new ArrayList<>();
SpecialInterest sp1 = new SpecialInterest(interestCategory,details,dateBadgeReceived);
sps.add(sp1);
//stuff
BeaverScout s1 = new BeaverScout(name, county, dateOfBirth, address, phoneNumber, sps, parentPhone);

