Начнем с перечисления,
public enum Gender{
Male,
Female
}
Вы можете использовать ссылки на это перечисление, которое будет иметь тип Gender
и может быть Male
или Female
, как и любые другие переменные, для Например,
Gender male = Gender.MALE;
if (male == Gender.MALE){
System.out.println("Variable male has value Gender.MALE");
}else{
System.out.println("Variable male has value Gender.FEMALE");
}
Теперь класс Person
, модификатор
public abstract class Person{
public Gender gender;
}
Stati c удален, потому что каждый экземпляр Person
должен иметь свой пол.
И, наконец, фактическая реализация Person
, a Minessotan
,
public class Minnesotan extends Person{
public Minnesotan(Gender gender){
this.gender = gender;
}
}
Чтобы создать Minnesotan
, который является Person
, вы должны указать его пол, который имеет тип Gender
. Вот и все.