回答編集履歴

2

改めて回答

2016/11/23 16:14

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,5 +1,17 @@
1
- ###勘違い回答でした。
1
+ ```java
2
2
 
3
- Test2がObjectクラスの直系の子クラスだからです。意図としてはTest1クラスを継承しているつもりでしょうか?
3
+ public class Test2 {
4
4
 
5
+ public Test1 clone(Test1 t) throws CloneNotSupportedException{
6
+
5
- extends Test1が抜けています。
7
+ return(Test1)super.clone();
8
+
9
+ }
10
+
11
+
12
+
13
+ }
14
+
15
+ ```
16
+
17
+ このコードで複製しているのはTest1型オブジェクトtではなく、**このメソッドを実行するTest2オブジェクト自身**です。このコードのsuperはTest2の親クラスのObjectを指します。ObjectもTest2もCloneableを持っていないため、CloneNotSupportedExceptionが発生するのです。

1

勘違い回答

2016/11/23 16:14

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -1,3 +1,5 @@
1
+ ###勘違い回答でした。
2
+
1
3
  Test2がObjectクラスの直系の子クラスだからです。意図としてはTest1クラスを継承しているつもりでしょうか?
2
4
 
3
5
  extends Test1が抜けています。