teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

若干記述修正

2025/06/18 02:58

投稿

fana
fana

スコア12206

answer CHANGED
@@ -14,8 +14,15 @@
14
14
  っていう話ですよね.だから `private` にしている,と.
15
15
 
16
16
  これだと
17
- `X x = new X(); x.F2();` みたく `X` の外側から `F2()` を使ないだけでなく,
17
+ `X x = new X(); x.F2();` みたくして `X` の外側から `F2()` を使うことができないわけですが,それだけでなく,
18
18
  `class Y : X` として `X` を継承した `Y` の内側(: `Y` の別のメソッドとかの中)でも `F2()` は使えません.
19
19
 
20
+ ```C#
21
+ public class Y : X
22
+ {
23
+ public Method(){ F2(); } //←できない.
24
+ }
25
+ ```
26
+
20
27
  それで良いなら `private` のままでOKです.
21
28
  それだと困る(: `F2()` というのは,外側からは使えないようにしたいけども, `X` を継承した `Y` の内側では使いたい)という場合に,それを可能にするのが `protected` です.

1

誤記修正

2025/06/18 02:55

投稿

fana
fana

スコア12206

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  `protected` よりも前に,
2
- `public` と `private` については大丈夫なんでしょうか.たとえば
2
+ `public` と `private` については大丈夫なんでしょうか.たとえば
3
3
 
4
4
  ```C#
5
5
  public class X