clone()クラスで宣言されたメソッドObjectが保護されており、Object(すべてのクラスである) のすべてのサブクラスがここでアクセスできることが わかっているので、私の質問が喚起されます。
私が書く場合:
String str1 = "clone";
String str2 = str1.clone();
コンパイラはこれをエラーとしてフラグ付けします。Stringオーバーライドしないclone()ため、このメソッドはlangパッケージでのみアクセスできます(このクラスがオーバーライドclone()されている場合、パッケージの外部からアクセスできるようにパブリックにする必要があり、保護されている場合はlangパッケージでアクセスできます)。右?ただし、このフラグメントはコンパイル エラーにフラグを立てません。
Point p1 = new Point();
Point p2 = p1.clone();
なぜ?
両方StringとクラスはメソッドをPointオーバーライドしませんが、メソッドはオブジェクトを介してアクセスできます。clone()clone()Point