I have three different classes:
Woman.java
package human;
public class Woman extends Human{
    private final String pnr;
    private final String namn;
    public Woman(String n, String p){
        namn = n;
        pnr = p;
    }
    public String toString(){
        return "My name is "+namn+" and I am a woman.";
    }
}
Man.java
package human;
public class Man extends Human{
    private final String pnr;
    private final String namn;
    public Man(String n, String p){
        namn = n;
        pnr = p;
    }
    public String toString(){
        return "My name is "+namn+" and I am a man.";
    }   
}
Human.java
package human;
public abstract class Human{
    public static Human create(String namn, String pnr){
        char nastsist_char = pnr.charAt(9); // takes second last char in pnr
        String nastsist_string = Character.toString(nastsist_char);
        float siffra = Float.parseFloat(nastsist_string);   //Converts to float
        if ((siffra % 2) == 0){                 //Checks if even
            return new Man(namn, pnr);          
        }
        else{
            return new Woman(namn, pnr);
        }
    }
}
When I try to compile the file Human.java, I get the error
cannot find symbol: class Man,
and
cannot find symbol: class Woman.
When I try to compile the file Man.java or Woman.java, I get the error
cannot find symbol: class Human.
No changing of public/private visibility of the classes have helped. All the files are located in a directory called human.
What is the problem here?
I should add that the goal I'm trying to achieve is to have an abstract class Human that can not be instantiated, and in that class I want to have a create method that returns instances of either Man or Woman depending on pnr. Also, I do not want Man or Woman to be possible to instantiate in any other way than through the create method.
Thanks
 
     
     
     
     
    