回答編集履歴

5

編集

2019/12/06 14:44

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  クラスA::BもクラスBもトップレベルに定義されている。クラス名がA::Bだからといって継承関係はない。
10
10
 
11
- クラスM::Bはトップレベルに定義ていない。
11
+ クラスM::Bはトップレベルに定義されていない。
12
12
 
13
13
  ```Ruby
14
14
 

4

編集

2019/12/06 14:44

投稿

退会済みユーザー
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  クラス名はただの定数なので、パスが異なれば同じ名前のクラスを定義できる。
8
8
 
9
- クラスA::BもクラスBもトップレベルに定義されている。(※クラス名がA::Bだからといって継承関係はない。
9
+ クラスA::BもクラスBもトップレベルに定義されている。クラス名がA::Bだからといって継承関係はない。
10
10
 
11
11
  クラスM::Bはトップレベルに定義していない。
12
12
 
@@ -56,14 +56,6 @@
56
56
 
57
57
 
58
58
 
59
- class A
60
-
61
- CONST = "Hello, world"
62
-
63
- end
64
-
65
-
66
-
67
59
  module M
68
60
 
69
61
  class B < A
@@ -87,3 +79,35 @@
87
79
 
88
80
 
89
81
  ```
82
+
83
+ 追加
84
+
85
+ 以下のクラスA::BはクラスAを継承していないが、ネスト関係の外側にCONSTが存在するため参照できる。
86
+
87
+ ```Ruby
88
+
89
+ class A
90
+
91
+ CONST = "Hello, world"
92
+
93
+ class B
94
+
95
+ def method
96
+
97
+ CONST
98
+
99
+ end
100
+
101
+ end
102
+
103
+ end
104
+
105
+
106
+
107
+ p A::B.ancestors
108
+
109
+ p A::B.new.method
110
+
111
+
112
+
113
+ ```

3

編集

2019/12/06 14:32

投稿

退会済みユーザー
test CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  クラスBはクラスAを継承している。クラスAの定数を参照できる。
4
4
 
5
+ クラスM::BはモジュールMを名前空間にして、クラスAを継承している。クラスAの定数を参照できる。
6
+
5
7
  クラス名はただの定数なので、パスが異なれば同じ名前のクラスを定義できる。
6
8
 
7
9
  クラスA::BもクラスBもトップレベルに定義されている。(※クラス名がA::Bだからといって継承関係はない。)
10
+
11
+ クラスM::Bはトップレベルに定義していない。
8
12
 
9
13
  ```Ruby
10
14
 
@@ -52,4 +56,34 @@
52
56
 
53
57
 
54
58
 
59
+ class A
60
+
61
+ CONST = "Hello, world"
62
+
63
+ end
64
+
65
+
66
+
67
+ module M
68
+
69
+ class B < A
70
+
71
+ def method
72
+
73
+ CONST
74
+
75
+ end
76
+
77
+ end
78
+
79
+ end
80
+
81
+
82
+
83
+ p M::B.ancestors
84
+
85
+ p M::B.new.method
86
+
87
+
88
+
55
89
  ```

2

編集

2019/12/06 14:24

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,10 @@
1
1
  クラスA::BはクラスAを継承していない。パスを示せばクラスAの定数を参照できる。
2
2
 
3
3
  クラスBはクラスAを継承している。クラスAの定数を参照できる。
4
+
5
+ クラス名はただの定数なので、パスが異なれば同じ名前のクラスを定義できる。
6
+
7
+ クラスA::BもクラスBもトップレベルに定義されている。(※クラス名がA::Bだからといって継承関係はない。)
4
8
 
5
9
  ```Ruby
6
10
 

1

編集

2019/12/06 14:15

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  クラスA::BはクラスAを継承していない。パスを示せばクラスAの定数を参照できる。
2
2
 
3
- クラスCはクラスAを継承している。クラスAの定数を参照できる。
3
+ クラスBはクラスAを継承している。クラスAの定数を参照できる。
4
4
 
5
5
  ```Ruby
6
6
 
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- class C < A
33
+ class B < A
34
34
 
35
35
  def method
36
36
 
@@ -42,9 +42,9 @@
42
42
 
43
43
 
44
44
 
45
- p C.ancestors
45
+ p B.ancestors
46
46
 
47
- p C.new.method
47
+ p B.new.method
48
48
 
49
49
 
50
50