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

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

29
インターフェイスと抽象クラスの違いをどのように説明すればよいですか?
インタビューの1つで、インターフェイスと抽象クラスの違いを説明するように求められました。 これが私の返答です: Javaインターフェースのメソッドは暗黙的に抽象的であり、実装を持つことはできません。Java抽象クラスには、デフォルトの動作を実装するインスタンスメソッドを含めることができます。 Javaインターフェースで宣言された変数は、デフォルトではfinalです。抽象クラスには、非final変数が含まれる場合があります。 Javaインターフェースのメンバーはデフォルトでパブリックです。Java抽象クラスは、private、protectedなどの通常のクラスメンバーのフレーバーを持つことができます。 Javaインターフェースは、キーワード「implements」を使用して実装する必要があります。Java抽象クラスは、キーワード「extends」を使用して拡張する必要があります。 インターフェースは別のJavaインターフェースのみを拡張でき、抽象クラスは別のJavaクラスを拡張して複数のJavaインターフェースを実装できます。 Javaクラスは複数のインターフェースを実装できますが、拡張できる抽象クラスは1つだけです。 しかしインタビュアーは満足せず、この記述は「本好きの知識」を表すものだと私に言った。 実用的な例を使用して、インターフェイスより抽象クラスをいつ選択するかを説明し、より実用的な対応を求められました。 どこで私は間違えましたか?


12
Pythonで抽象クラスを作成することは可能ですか?
Pythonでクラスまたはメソッドを抽象化するにはどうすればよいですか? 私は__new__()そのように再定義しようとしました: class F: def __new__(cls): raise Exception("Unable to create an instance of abstract class %s" %cls) しかしG、次のFように継承するクラスを作成すると、 class G(F): pass Gその場合、スーパークラスの__new__メソッドを呼び出すため、インスタンス化もできません。 抽象クラスを定義するより良い方法はありますか?

5
SCSSに別のクラスを含める
私のSCSSファイルにこれがあります: .class-a{ display: inline-block; //some other properties &:hover{ color: darken(#FFFFFF, 10%); } } .class-b{ //Inherite class-a here //some properties } class-bでは、のすべてのプロパティとネストされた宣言を継承したいと思いclass-aます。これはどのように行われますか?を使用してみまし@include class-aたが、コンパイル時にエラーが発生しました。
309 inheritance  sass 

7
テンプレート化を容易にするためのJSPトリック?
仕事では、たくさんのHTMLファイルをシンプルなJSPプロジェクトに変換する仕事を任されてきました。実際にはすべて静的であり、プログラムするサーバー側ロジックはありません。私はJavaがまったく初めての人であることを述べておきます。JSPファイルは、のように一般的なインクルードと変数を簡単に操作できるように見えますが、PHPテンプレートの継承(Djangoスタイル)などの簡単な方法を知りたい、または少なくともbase.jspファイルを含むことができるようにしたいヘッダーとフッターなので、後でコンテンツを挿入できます。 ベン・リングスは、ここで彼の答えにいくつかの希望を与えているようです: JSPテンプレートの継承 誰かがこれを達成する方法を説明できますか? 時間がないことを考えると、動的ルーティングは少し多いと思うので、URLを.jspファイルに直接マップさせてよかったと思いますが、私は提案を受け入れます。 ありがとう。 編集:外部ライブラリを使用したくありません。自分やプロジェクトに携わっている他の人にとって学習曲線が増えるため、私が働いている会社がこれを行うように契約しているからです。 別の編集:JSP tagsコンテンツにテンプレート変数が実際にはないため、役に立つかどうかはわかりません。私が必要なのはこれを行うことができる方法です: base.html: <html><body> { content.body } </body></html> somepage.html <wrapper:base.html> <h1>Welcome</h1> </wrapper> 出力は次のとおりです。 <html><body> <h1>Welcome</h1> </body></html> これにより、必要なすべてを実行するのに十分な汎用性が得られると思います。それで達成することができますが、includesその場合、ラッパーごとにトップとボトムのインクルードが必要になります。


8
Javaでカスタム例外クラスを定義する方法、最も簡単な方法は?
私は自分の例外クラスを最も簡単な方法で定義しようとしています、そしてこれは私が得ているものです: public class MyException extends Exception {} public class Foo { public bar() throws MyException { throw new MyException("try again please"); } } これはJavaコンパイラが言うことです: cannot find symbol: constructor MyException(java.lang.String) このコンストラクタはから継承する必要があると感じましjava.lang.Exceptionたね。

5
原型継承が古典よりも優れている点は?
それで、私はついにこれらの年の間ずっと足を引きずることをやめて、JavaScriptを「適切に」学ぶことを決めました。言語設計の最も頭を悩ます要素の1つは、継承の実装です。Rubyの経験があったので、クロージャーと動的型付けを見て本当に幸せでした。しかし、私の人生では、継承のために他のインスタンスを使用するオブジェクトインスタンスからどのようなメリットが得られるかを理解できません。


4
Javaでデフォルトのメソッドを明示的に呼び出す
Java 8では、既存の実装を変更せずにインターフェースを拡張する機能を提供するデフォルトのメソッドが導入されています。 メソッドがオーバーライドされている場合、または異なるインターフェイスでデフォルト実装が競合しているために使用できない場合に、メソッドのデフォルト実装を明示的に呼び出すことができるかどうか疑問に思います。 interface A { default void foo() { System.out.println("A.foo"); } } class B implements A { @Override public void foo() { System.out.println("B.foo"); } public void afoo() { // how to invoke A.foo() here? } } 上記のコードを考慮してA.foo()、クラスBのメソッドからどのように呼び出しますか?

17
サブクラスはプライベートフィールドを継承しますか?
これはインタビューの質問です。 サブクラスはプライベートフィールドを継承しますか? 「通常のOOP方法」ではアクセスできないため、「いいえ」と答えました。しかし、インタビュアーはそれらが継承されていると考えています。これは、そのようなフィールドに間接的にまたはリフレクションを使用してアクセスでき、それらはまだオブジェクトに存在しているためです。 私が戻ってきた後、私はjavadocで次の引用を見つけました: スーパークラスのプライベートメンバー サブクラスは、親クラスのプライベートメンバーを継承しません。 インタビュアーの意見について何か議論はありますか?
245 java  oop  inheritance  private 

8
データベースで継承をどのように表すことができますか?
SQL Serverデータベースで複雑な構造を表現する方法について考えています。 オブジェクトのファミリの詳細を格納する必要があるアプリケーションを考えてみてください。これらのオブジェクトは、いくつかの属性を共有しますが、他の多くの属性は一般的ではありません。たとえば、商業保険パッケージには、同じ保険証券レコード内の負債、モーター、財産、および補償の補償が含まれる場合があります。 セクションのコレクションでポリシーを作成できるため、C#などでこれを実装するのは簡単です。セクションは、さまざまなタイプのカバーに必要に応じて継承されます。ただし、リレーショナルデータベースでは、これを簡単に行うことができないようです。 主に2つの選択肢があることがわかります。 Policyテーブルを作成し、次にSectionsテーブルを作成します。可能なすべてのバリエーションについて、すべてのフィールドが必須であり、ほとんどがnullになります。 カバーの種類ごとに1つずつ、ポリシーテーブルと多数のセクションテーブルを作成します。 特に、すべてのセクションにまたがるクエリを記述する必要があるため、これらの方法はどちらも不十分であるように見えます。 このシナリオのベストプラクティスは何ですか?

8
Javaでアノテーションを拡張できないのはなぜですか?
Javaクラスのように、Javaアノテーションに継承がない理由がわかりません。とても重宝すると思います。 例:特定の注釈がバリデーターかどうかを知りたい。継承により、スーパークラスを反射的にナビゲートして、このアノテーションがを拡張するかどうかを知ることができValidatorAnnotationます。そうでなければ、どうすればこれを達成できますか? それで、誰かが私にこの設計決定の理由を教えてもらえますか?


12
静的クラスを継承できないのはなぜですか?
本当に状態を必要としないクラスがいくつかあります。組織的には階層化したい。 しかし、静的クラスの継承を宣言できないようです。 そんな感じ: public static class Base { } public static class Inherited : Base { } 動作しないでしょう。 言語のデザイナーがその可能性を閉じたのはなぜですか?
224 c#  inheritance  static 

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