タグ付けされた質問 「inheritance」

継承とは、オブジェクト指向プログラミングのシステムであり、オブジェクトは独自の定義を提供する必要なく、前の型によって定義された操作をサポートできます。これは、オブジェクト指向プログラミングにおけるポリモーフィズムの主要なベクトルです。

17
継承とポリモーフィズムの主な違いは何ですか?
今日、モジュールの終わりに開かれた本の試験でこの質問が出され、私は迷っていました。私は読んでいてHead first Java、両方の定義がまったく同じであるように見えました。自分の心の中での主な違いは何だろうと思っていました。これと同様の質問がいくつかあることは知っていますが、決定的な答えを提供するものはありません。



8
__proto__はconstructor.prototypeとどのように異なりますか?
function Gadget(name, color) { this.name = name; this.color = color; } Gadget.prototype.rating = 3 var newtoy = new Gadget("webcam", "black") newtoy.constructor.prototype.constructor.prototype.constructor.prototype 常に評価= 3のオブジェクトを返します。 しかし、私が次のことをした場合: newtoy.__proto__.__proto__.__proto__ チェーンが戻ってくるnull。 また、Internet Explorerでは、__proto__プロパティがない場合にnullをどのようにチェックしますか?


11
コンポーネントを拡張/継承する方法は?
基本コンポーネントは変更される可能性があり、これらの変更が派生コンポーネントにも反映されることを望んでいるため、Angular 2にすでにデプロイされている一部のコンポーネントの拡張をほぼ完全に書き直す必要なく作成したいと思います。 私はこの簡単な例を作成して、私の質問をよりよく説明しようとしました: 次の基本コンポーネントでapp/base-panel.component.ts: import {Component, Input} from 'angular2/core'; @Component({ selector: 'base-panel', template: '<div class="panel" [style.background-color]="color" (click)="onClick($event)">{{content}}</div>', styles: [` .panel{ padding: 50px; } `] }) export class BasePanelComponent { @Input() content: string; color: string = "red"; onClick(event){ console.log("Click color: " + this.color); } } あなたは、例えばのみALTER派生する別の成分、例えば、色の場合の基本的なコンポーネントの動作を作成したいと思いますapp/my-panel.component.ts: import {Component} from 'angular2/core'; import …


2
C ++継承-アクセスできないベース?
基本クラスを関数パラメーターとして使用できないようですが、継承をめちゃくちゃにしましたか? 私のメインには以下があります: int some_ftn(Foo *f) { /* some code */ }; Bar b; some_ftn(&b); そして、そのような方法でFooを継承するクラスBar: class Bar : Foo { public: Bar(); //snip private: //snip }; これはうまくいきませんか?私のメイン関数でその呼び出しを行うことができないようです
157 c++  inheritance 

9
スーパークラスの__init__メソッドが自動的に呼び出されないのはなぜですか?
他の一部の言語のように、Python設計者がサブクラスの__init__()メソッドが__init__()スーパークラスのメソッドを自動的に呼び出さないと決定したのはなぜですか?Pythonicと推奨されるイディオムは本当に次のようなものですか? class Superclass(object): def __init__(self): print 'Do something' class Subclass(Superclass): def __init__(self): super(Subclass, self).__init__() print 'Do something else'


6
isKindOfClassとisMemberOfClassのiOSの違い
違いは何であるisKindOfClass:(Class)aClassとisMemberOfClass:(Class)aClassの機能は?私はそれが小さなもののようであることを知っています、一方はグローバルで、もう一方はクラスの完全一致ですが、どちらを指定するかを誰かに指定する必要があります。 Swift isKind(of aClass: AnyClass)およびisMember(of aClass: AnyClass)。

12
継承と集約[終了]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 オブジェクト指向システムでコードを最適に拡張、拡張、再利用する方法については、2つの考え方があります。 継承:サブクラスを作成して、クラスの機能を拡張します。新しい機能を提供するために、サブクラスのスーパークラスメンバーをオーバーライドします。スーパークラスが特定のインターフェースを必要とするが、その実装にとらわれない場合は、メソッドを抽象/仮想にして、サブクラスに「空白埋め」を強制します。 集約:他のクラスを取得してそれらを新しいクラスに結合することにより、新しい機能を作成します。他のコードとの相互運用性のために、この新しいクラスに共通のインターフェイスをアタッチします。 それぞれのメリット、コスト、結果は何ですか?他の選択肢はありますか? この議論は定期的に出てきますが、まだスタックオーバーフローで質問されているとは思いません(いくつか関連する議論があります)。また、Googleでの良い結果が驚くほど不足していることもあります。

5
TypeError:module .__ init __()は最大で2つの引数を取ります(3つ指定)
という名前のファイルでクラスを定義しましたObject.py。別のファイルのこのクラスから継承しようとすると、コンストラクターを呼び出すと例外がスローされます。 TypeError: module.__init__() takes at most 2 arguments (3 given) これは私のコードです: import Object class Visitor(Object): pass instance = Visitor() # this line throws the exception 何が悪いのですか?

13
実行時に、基本クラスを拡張するJavaアプリケーション内のすべてのクラスを検索します
私はこのようなことをしたいです: List<Animal> animals = new ArrayList<Animal>(); for( Class c: list_of_all_classes_available_to_my_app() ) if (c is Animal) animals.add( new c() ); そのため、アプリケーションのユニバース内のすべてのクラスを確認し、Animalから派生したクラスを見つけたら、そのタイプの新しいオブジェクトを作成してリストに追加します。これにより、リストを更新しなくても機能を追加できます。以下を回避できます。 List<Animal> animals = new ArrayList<Animal>(); animals.add( new Dog() ); animals.add( new Cat() ); animals.add( new Donkey() ); ... 上記のアプローチでは、Animalを拡張する新しいクラスを作成するだけで、自動的に取得されます。 更新:2008/10/16太平洋標準時午前9:00: この質問により多くの素晴らしい回答が得られました。ありがとうございました。 回答と私の調査から、私が本当にやりたいことは、Javaでは不可能であることがわかりました。ddimitrovのServiceLoaderメカニズムなど、機能するアプローチはいくつかありますが、私が望むものには非常に重く、問題をJavaコードから外部構成ファイルに移すだけだと思います。 19年5月10日更新(11年後!)@IvanNikの回答に よると、これに役立つライブラリがいくつかありますorg.reflectionsは良さそうです。またClassGraph @Lukeハチソンさんからの答えは面白そうですね。答えにはさらにいくつかの可能性があります。 私が望むものを述べる別の方法:私のAnimalクラスの静的関数は、追加の構成/コーディングなしで、Animalから継承するすべてのクラスを見つけてインスタンス化します。構成する必要がある場合は、いずれにしても、Animalクラスでインスタンス化するだけで済みます。Javaプログラムは.classファイルの緩やかな連合なので、それがそのままの方法であることは理解しています。 興味深いことに、これはC#ではかなり簡単なようです。

5
C#:継承されたイベントを発生させる
次のイベントを含む基本クラスがあります。 public event EventHandler Loading; public event EventHandler Finished; この基本クラスを継承するクラスで、イベントを発生させようとします。 this.Loading(this, new EventHandler()); // All we care about is which object is loading. 次のエラーが表示されます。 イベント「BaseClass.Loading」は、+ =または-=(BaseClass ')の左側にのみ表示できます 他の継承メンバーと同じようにこれらのイベントにアクセスできないと思いますか?
144 c#  events  inheritance 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.