来自 Object 类型的方法 clone() 是不可见的 java



这是超类:

public class Marca implements Cloneable{
public Marca() {
String nome = null;
String descrizione = null;  
}
public Marca(String nome,String descrizione ){
this.nome = nome;
this.descrizione = descrizione;     
}
//Object
public Marca clone() {
try {
return (Marca) super.clone();
}
catch(CloneNotSupportedException e) {
return null;
}
}
private String nome;
private String descrizione;
}

这是有问题的第二个类(子类(:

public class Capo_di_abbigliamento extends Marca{
public Capo_di_abbigliamento() {
Marca abbigliamento = new Marca();
String codice = null;
String colore = null;
double prezzo = 0;
}
public Capo_di_abbigliamento(String codice,String colore, double prezzo , String nome , String descrizione) 
{
super(nome,descrizione);
this.codice= codice;
this.colore= colore;
this.prezzo= prezzo;
}

public Capo_di_abbigliamento clone() {
try {
Capo_di_abbigliamento cloned = (Capo_di_abbigliamento) super.clone();
cloned.abbigliamento= abbigliamento.clone(); // **THE PROBLEM IS HERE**
return cloned;
}
catch(CloneNotSupportedException e) {
return null;
}
}
private Object abbigliamento;
private String codice;
private String colore;
private double prezzo;
}

此错误出现在公共Capo_di_abbigliamentoclone()

"来自对象类型的 clone(( 方法不可见"。

问题是capo_di_abbigliamento类中的方法克隆。如何使用此类进行克隆?

你有一个字段

private Object abbigliamento;

而且clone()方法受到保护且不可见。

构造函数中具有相同名称的变量不执行任何操作。

我假设您不是在尝试创建局部变量,而是初始化字段。

private Marca abbigliamento;
private String codice;
private String colore;
private double prezzo;
public Capo_di_abbigliamento() {
abbigliamento = new Marca();
codice = null;
colore = null;
prezzo = 0;
}

private Marca abbigliamento = new Marca();
private String codice;
private String colore;
private double prezzo;
public Capo_di_abbigliamento() {
}

最新更新