나는 슈퍼 클래스 Vehicle
을 가지고 있으며 서브 클래스는 Plane
과 Car
입니다. 차량은 final string name;
필드가있는 클래스에서 확장되며 생성자에서만 설정할 수 있습니다.슈퍼 생성자를 호출하고 클래스 이름을 java로 전달할 수 있습니까?
이 필드를 클래스 이름으로 설정하려고합니다. 따라서 Car의 이름은 Car, Plane은 Plane, Vehicle은 Vehicle이됩니다.
public Vehicle() {
super(getClass().getSimpleName()); //returns Car, Plane or Vehicle (Subclass' name)
}
을하지만이 나에게 오류를 제공합니다 : 우선 나는 생각했다 Cannot refer to an instance method while explicitly invoking a constructor
.
수동으로 문자열로 전달하지 않고도 name
필드를 클래스 이름으로 설정할 수 있습니까?
왜? 클래스는 언제든지 자체 이름을 가져올 수 있으며 필드에 저장할 필요가 없습니다. – EJP