如何在其他类中使用私有枚举

时间:2018-10-17 01:18:21

标签: java enums private

这是我的超类,在那里我创建了一个私人枚举

public class Media {

private String Title;
private enum Genre { Comedy, Horror, Action, Romance, Documentary, Thriller, Drama}

Genre genre;


public Media ()
{

}
public Media(String t, Genre g){

   this.Title=t;
   genre=g;

}

现在我想在子类中使用它

public class Movies extends Media{
private String regi;
private int playtime;

public Movies(){

}

public Movies(String t, Genre g, String r, int playt)
{
    setTitle(t);
    genre=g;
    this.regi=r;
    this.playtime=playt;
}

但是它不起作用,因为当我发送创建Movie对象的方法的类型时,它告诉我枚举是私有的吗?不能有一个私有枚举,并且不能在其他类或子类中使用它?

2 个答案:

答案 0 :(得分:1)

使用枚举protected代替private

protected enum Genre { Comedy, Horror, Action, Romance, Documentary, Thriller, Drama}

Private意味着只能在其声明的类中访问。

Protected与私有相同,但派生类可以访问。

Public表示可以访问所有

答案 1 :(得分:0)

我不是Java方面的专家,但是在定义可见性的情况下。如果要将范围限制为当前类,则定义一个 private 成员(属性,属性,方法)。如果希望从派生类访问但将范围保留到该类或派生类,则应将其定义为受保护的我强烈建议您阅读一些有关该内容的信息,因为了解所有这些基本概念至关重要。