перечисление ссылочной переменной в Java - PullRequest
0 голосов
/ 30 мая 2020

Я изучаю ссылочные переменные. Если у меня есть два класса: скажем, один - это Person, а другой - Minnesotan, который расширяет класс Person. Класс Person абстрактный. В классе Person есть ссылочная переменная Gender, которая может быть женской, мужской и т. Д. Как мне написать ссылочную переменную Gender с перечислением? как ссылочную переменную можно расширить в дочернем классе? Извините, если это повторяющийся вопрос, и заранее благодарим вас за вашу помощь.

public abstract class Person{
   public static Gender gender;
   class Gender{

   }
   public enum Gender{
       female,male,others;
   }
}
public class Minnesotan extends Person{
    public Minnesotan(Gender gender){
        super(gender);
    }

}

1 Ответ

2 голосов
/ 30 мая 2020

Начнем с перечисления,

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. Вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...