• ベストアンサー

基準となるクラスの名称はなんですか?

ベースになるクラスのことの正式名称でなんと呼ぶんでしょうか?ベースクラス?クラスベース? 調べたところいろんな呼び方があるようです。 また、 親>子>孫 というクラス構造があった場合、 ベースを子とした場合、孫のメソッドやプロパティは使えないことになります これは下位へのアクセスを制限することになりますよね だとしたら、上位ほど基本的な機能が含まれ、下位ほどあまり重要性の高くない機能が含まれると考える事もできるでしょうか?

  • Python
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.1

Pythonではclassに関して統一的用語を規定していません。 https://docs.python.org/ja/3/tutorial/classes.html >(クラスに関して普遍的な用語定義がないので、 Smalltalk と C++ の用語を場合に応じて使っていくことにします。 C++ よりも Modula-3 の方がオブジェクト指向の意味論が Python に近いので、 Modula-3 の用語を使いたいのですが、ほとんどの読者は Modula-3 についてしらないでしょうから。) >親>子>孫 というクラス構造があった場合、 ベースを子とした場合、孫のメソッドやプロパティは使えないことになります その場合のベースクラスは孫です。 Pythonではメソッドやプロパティは公開定義です。 アンダースコア付きの物もスコープは公開定義で、ローカルからのみアクセスする前提で作っている事を視覚的に宣言しているだけです。

関連するQ&A

  • ASP.NETで、マスタページを使ったWebアプリケーション開発を行っ

    ASP.NETで、マスタページを使ったWebアプリケーション開発を行っています。いわゆる入れ子で多層構造になっており、各階層にプロパティやメソッドが分散しています。 子ページから一つ上のマスタページにアクセスする方法は分かっているのですが、2つ以上離れた階層にアクセスするにはどうすればよいのでしょうか? MasterPage.Masterプロパティでは、一つ上のマスタページにしかアクセスできません。 呼び出し元の階層から上位階層の各マスタページに次のようなメソッドを準備し、順繰りに上位のメソッドをたどるようにしてやれば、呼び出せる事は確認しましたが、もっとスマートなやり方は無いでしょうか? public void MyMethod(){ Master.MyMethod(); //一つ上のマスタページのMethod()を呼ぶ }

  • 親クラスから子クラスへアクセス。

    親クラスから子クラスへアクセス。 お世話になります。 以下のプログラムについて考えています。 public class Main{  public static void main(String[] args) {   SubA subA = new SubA();   SubB subB = new SubB();   Super[] subs = {subA,subB};   subs[1].method();   subs[2].method();  } } class Super{  String str = "親";  public void method(){   System.out.println(str);  } } class SubA extends Super{  String str = "子A"; } class SubB extends Super{  String str = "子B"; } この場合、出力結果は当然 親 親 になります。 これを子クラスの str を表示するようにしたいのです。つまり 子A 子B です。 ただし、子クラスで method() をオーバーライドしたり、super.str = "子A" のように親クラスを書きかえずにです。 子クラスが何百種類もある場合、全く同じmethod()を書く無駄や、変更があったときにそれを全てを修正しなければならないことを避けたいのです。 何か良案がありましたら、ぜひご教授ください。よろしくお願いします。

  • 親クラスのメソッドを別のパッケージの子クラスでオーバーライドするときについて

    早速ではございますが、質問をさせていただきます。 親クラスのパッケージとは異なるパッケージに子クラスが あるとき、子クラスが親クラスのメソッドをオーバーライ ドするときに、親クラスのメソッドのアクセス修飾子を publicかprotectedにしなければコンパイルエラーになり ます。それはなぜなのでしょうか? どうかご教授のほどよろしくお願いします。

    • ベストアンサー
    • Java
  • +ボタンの名称は?

    +ボタンの名称は? よくウェブサイトのメニューで、+ボタンがあってこれをクリックするとバラバラと下位項目が展開するようなものがありますが、このプラスボタンは何と呼ぶのでしょうか? また当方はDreamweaverを使用していますが、このソフトでこの機能を使用するためにはどこにアクセスすれば良いのかご存じの方がおみえでしたらお教えくださると助かります。 どうぞよろしくお願いいたします。

  • 多数の引数で初期化されるクラスの初期化について。

    C++のクラスについての質問なのですが、多数の引数によって初期化され、初期化されないうちは全てのメソッドは機能しないものとします。 このようなclassの初期化についていろいろ考えているのですが、 1,構造体を渡す、  この方法では派生クラスで初期化する場合など凄く難しいと思う。  派生先で動的に決定される場合など、基底クラスより初期化されてくるので、動的に作成した引数を渡せない。 2,初期化専用メソッドをつくり、それが渡されるまで全てのメソッドをブロックする。  初期化されるまでは全てのメソッドは機能しないのだからそのあたりのコーディングが複雑化する。 3,全てコンストラクタの引数に取る。  コンストラクタが非常に長くなる。  デフォルト引数を使えばある程度改善されますが、それでも最後の要素を書き換えたいときなどとても長くなる。 現在は3の方法でコーディングを行っているのですが、このようなクラスの初期化方法でいい方法はないのでしょうか?

  • クラスからステージの参照方法

    お世話になります。 ActionScript3に関する質問です。 現在カスタムクラスを勉強中です。 カスタムクラスからstage.stageWidthを見に行きたいのですが、 『nullのオブジェクト参照のプロパティまたはメソッドに アクセスすることはできません・・・』というエラーが出てしまいます。 カスタムクラスからアクセスするにはどのように記述すれば良いでしょうか? また、stage以外でもクラスからこういうアクセスが汎用的 という例があればアドバイスいただけると幸いです。 お手数ですが、宜しくお願いいたします。

  • 【アクセス修飾子】アクセス修飾子無しのクラスにpublicなメソッド

    アクセス修飾子無しのクラスのメソッドにpublicを付ける意味がわかりません。 class MyClass {  public void method() {} } 例えばこのようなクラスがあったとします。 このクラスはアクセス修飾子無しで他のパッケージからはアクセス出来ない為、メソッドにpublicを付ける意味は無いと思うのですが、付けてもコンパイルは通ります。 何故なんだろう、と考えてみたのですが、例えばpublicなメソッドを持つpublicなクラスを継承し、そのメソッドをオーバーライドした時にメソッドにpublicを付けざるを得ない、あるいは、インターフェイス(暗黙的にメソッドにpublicが付く)を実装したときにメソッドにpublicを付けざるを得ない等、そういう場合に対応するための『遊び』みたいなものなのでしょうか? 御教授よろしくお願いします。

    • ベストアンサー
    • Java
  • フォルダのアクセス権と画面表示について

    NTサーバのフォルダのアクセス権設定について2つ質問があります。 【状況】 まず、上位フォルダの中に下位フォルダがあります。 次に、上位フォルダのアクセス権を「プロパティ/共有」においてユーザー全員にフルコントロールで共有設定します。 そして、下位フォルダのアクセス権は「プロパティ/共有」において特定のユーザーに共有設定します。 すると、下位フォルダは上位フォルダの中にあると同時に、共有フォルダのため、上位フォルダと同じ階層でも見ることができます。 そして、上位フォルダの中の下位フォルダは上位フォルダと同じ全員にフルコントロールの状態であり、上位フォルダと同階層にある下位フォルダは特定のユーザーのみアクセス権があります。 【質問】 (1)上位フォルダと同階層で見える下位フォルダを表示させない方法はないでしょうか。つまり、上位フォルダのなかにしか見えないようにはできないでしょうか。 (2)下位フォルダを特定ユーザーのアクセス権に共有設定するにはどうしたらよいでしょうか。 以上、よろしくお願い致します。

  • 親クラスコンストラクタを呼び出すタイミングについて

    ・親クラスコンストラクタを呼び出すタイミングに決まりはあるのでしょうか? ・例えば、子クラスのコンストラクタではなくて、子クラスのメソッドとかで呼び出しても良いのでしょうか? ・後、親クラスコンストラクタ処理が不要な場合は、子クラスから呼ばなくても別に構わないのでしょうか?

    • ベストアンサー
    • PHP
  • 抽象メソッド、抽象クラス

    C#を勉強しております。Javaにも同じ機能がありC#のカテゴリーがない為こちらで質問させていただきます。抽象メソッドや抽象クラスを使う利点に関してです。 これらを使う利点を調べたところオーバーライドさせられると書いてありました。オーバーライドしないと 実装がないのでエラーになると書いてありました。その点は理解できたのですが何故基本クラスで実体のない定義をする利点がよくわかりません。それなら最初から派生クラスの方にメソッドを定義すればいいのではという考えになりました。 抽象メソッドとして実体のない定義を行う利点なるものを教えてください。 よろしくお願いします。

専門家に質問してみよう