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

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

6
<union-subclass>(TABLE_PER_CLASS)ではID列キー生成を使用できません
com.something.SuperClass: @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class SuperClass implements Serializable { private static final long serialVersionUID = -695503064509648117L; long confirmationCode; @Id @GeneratedValue(strategy = GenerationType.AUTO) // Causes exception!!! public long getConfirmationCode() { return confirmationCode; } public void setConfirmationCode(long confirmationCode) { this.confirmationCode = confirmationCode; } } com.something.SubClass: @Entity public abstract class …

13
Java:オーバーライドされたメソッドを呼び出すスーパーメソッドを呼び出す
public class SuperClass { public void method1() { System.out.println("superclass method1"); this.method2(); } public void method2() { System.out.println("superclass method2"); } } public class SubClass extends SuperClass { @Override public void method1() { System.out.println("subclass method1"); super.method1(); } @Override public void method2() { System.out.println("subclass method2"); } } public class Demo { public static …

4
Pythonの継承とinitメソッド
私はPythonの初心者です。相続がわからないと__init__()。 class Num: def __init__(self,num): self.n1 = num class Num2(Num): def show(self): print self.n1 mynumber = Num2(8) mynumber.show() 結果: 8 これで結構です。しかし、私は交換するNum2と class Num2(Num): def __init__(self,num): self.n2 = num*2 def show(self): print self.n1,self.n2 結果: Error. Num2 has no attribute "n1". この場合、どのようにNum2アクセスできますn1か?

9
親クラスの子クラスの名前を取得する(静的コンテキスト)
私は、再利用とシンプルさを念頭に置いてORMライブラリを構築しています。私は愚かな継承の制限に悩まされたことを除いて、すべてうまくいきます。以下のコードを検討してください: class BaseModel { /* * Return an instance of a Model from the database. */ static public function get (/* varargs */) { // 1. Notice we want an instance of User $class = get_class(parent); // value: bool(false) $class = get_class(self); // value: bool(false) $class = get_class(); // value: …

9
C#のコメント継承(実際には任意の言語)
このインターフェイスがあるとしましょう public interface IFoo { ///&lt;summary&gt; /// Foo method ///&lt;/summary&gt; void Foo(); ///&lt;summary&gt; /// Bar method ///&lt;/summary&gt; void Bar(); ///&lt;summary&gt; /// Situation normal ///&lt;/summary&gt; void Snafu(); } そしてこのクラス public class Foo : IFoo { public void Foo() { ... } public void Bar() { ... } public void Snafu() { …

10
C ++が継承された友情を許可しないのはなぜですか?
C ++で友情が少なくともオプションで継承できないのはなぜですか?私は明白な理由で禁止されている推移性と反射性を理解しています(私はこれは単純なFAQの引用回答を回避するためだけに言っています)が、virtual friend class Foo;パズルの線に沿った何かの欠如は私を困惑させます。この決定の背後にある歴史的背景を知っている人はいますか?友情は本当に限定されたハックに過ぎなかったのか、それからいくつかのあいまいな立派な用途にその道を見つけましたか? 説明のために編集します。私は次のシナリオについて話しています。Aの子がBのいずれか、またはBとその子の両方にさらされているわけではありません。必要に応じて、フレンド関数のオーバーライドなどへのアクセスを許可することも想像できます。 class A { int x; friend class B; }; class B { // OK as per friend declaration above. void foo(A&amp; a, int n) { a.x = n; } }; class D : public B { /* can't get in A w/o 'friend class …

3
基本クラスから派生クラスを動的に作成する方法
たとえば、次のような基本クラスがあります。 class BaseClass(object): def __init__(self, classtype): self._type = classtype このクラスから、他のいくつかのクラスを派生させます。 class TestClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Test') class SpecialClass(BaseClass): def __init__(self): super(TestClass, self).__init__('Special') 次のように、新しいクラスを現在のスコープに入れる関数呼び出しによってこれらのクラスを動的に作成するための、Pythonを使った素晴らしい方法はありますか。 foo(BaseClass, "My") a = MyClass() ... なぜこれが必要なのかについてのコメントと質問があります:派生クラスはすべて、まったく異なる内部構造を持っていますが、コンストラクターは以前に未定義の引数をいくつか取ります。したがって、たとえば、クラスのコンストラクタがとを受け取りながらMyClassキーワードaをTestClass受け取ります。bc inst1 = MyClass(a=4) inst2 = MyClass(a=5) inst3 = TestClass(b=False, c = "test") ただし、クラスのタイプを入力引数として使用しないでください。 inst1 = BaseClass(classtype = "My", a=4) 私はこれを動作させましたが、他の方法、つまり動的に作成されたクラスオブジェクトを好むでしょう。

2
名前は同じだがシグネチャが異なる関数
同じ名前の関数がありますが、基本クラスと派生クラスで署名が異なります。派生クラスから継承する別のクラスで基本クラスの関数を使用しようとすると、エラーが発生します。次のコードを参照してください。 class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { public: void bar() { string s; foo(s); } }; gccコンパイラーから次のエラーを受け取ります。 In member function `void C::bar()': no matching function for call to `C::foo(std::string&amp;)' candidates are: …

7
拡張PHPクラスの静的呼び出しからクラス名を取得するにはどうすればよいですか?
との2つのクラスがActionありMyActionます。後者は次のように宣言されます。 class MyAction extends Action {/* some methods here */} 必要なのはActionクラス内のメソッドだけです(継承されたクラスがたくさんあり、それらすべてにこのメソッドを実装したくないので、クラス内だけです)。これは静的呼び出しからクラス名を返します。これが私が話していることです: Class Action { function n(){/* something */} } そして私がそれを呼ぶとき: MyAction::n(); // it should return "MyAction" ただし、親クラスの各宣言__CLASS__は、値「Action」を持つ親クラス変数にのみアクセスできます。 これを行うための可能な方法はありますか?
91 php  oop  inheritance 

5
すべての仮想関数を派生クラスに実装する必要がありますか?
これは簡単な質問のように思えるかもしれませんが、他のどこにも答えが見つかりません。 私が次のものを持っているとしましょう: class Abstract { public: virtual void foo() = 0; virtual void bar(); } class Derived : Abstract { public: virtual void foo(); } Derivedクラスがbar()関数を実装していなくても大丈夫ですか?すべての派生クラスがbar()関数を必要としない場合はどうなりますが、一部は必要です。抽象基本クラスのすべての仮想関数を派生クラスに実装する必要がありますか、それとも純粋仮想関数だけを実装する必要がありますか?ありがとう
91 c++  inheritance 

3
Scalaトレイトでvalまたはdefを使用するのはいつですか?
私は効果的なスカラスライドを調べていましたが、スライド10には、抽象メンバーvalには絶対にtrait使用せdefず、代わりに使用するように記載されています。スライドではval、atraitでabstractを使用することがアンチパターンである理由については詳しく説明していません。誰かが抽象メソッドの特性でvalvsdefを使用することに関するベストプラクティスを説明できれば幸いです

2
Pythonの継承:TypeError:object .__ init __()はパラメーターを取りません
このエラーが発生します: TypeError: object.__init__() takes no parameters コードを実行しているとき、ここで何が間違っているのか実際にはわかりません。 class IRCReplyModule(object): activated=True moduleHandlerResultList=None moduleHandlerCommandlist=None modulename="" def __init__(self,modulename): self.modulename = modulename class SimpleHelloWorld(IRCReplyModule): def __init__(self): super(IRCReplyModule,self).__init__('hello world')

12
Java動的バインディングとメソッドのオーバーライド
昨日、2時間の技術的な電話インタビュー(私は合格しました、woohoo!)を行いましたが、Javaの動的バインディングに関する次の質問を完全に覆い隠しました。そして、数年前に私がTAだったときにこの概念を学部生に教えていたので、それは二重に困惑しているので、彼らに誤った情報を与えた見込みは少し不安です... ここに私が与えられた問題があります: /* What is the output of the following program? */ public class Test { public boolean equals( Test other ) { System.out.println( "Inside of Test.equals" ); return false; } public static void main( String [] args ) { Object t1 = new Test(); Object t2 = new Test(); …

9
Javaエラー:暗黙のスーパーコンストラクターがデフォルトコンストラクターに対して未定義です
私はその構造がこれに似たいくつかの単純なJavaコードを持っています: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } にはかなりの数のサブクラスがありBaseClass、それぞれgetName()独自の方法でメソッドを実装します(テンプレートメソッドパターン)。 これは適切に機能しますが、サブクラスに冗長コンストラクターを含めるのは好ましくありません。入力するのがより多く、維持するのが難しいです。BaseClassコンストラクタのメソッドシグネチャを変更する場合、すべてのサブクラスを変更する必要があります。 サブクラスからコンストラクターを削除すると、次のコンパイル時エラーが発生します。 Implicit super constructor …

3
Objective-Cの多重継承
2つのクラスがあり、1つはmethodAを含み、もう1つはmethodBを含みます。新しいクラスでは、メソッドmethodAとmethodBをオーバーライドする必要があります。では、どうすれば目的Cで多重継承を実現できますか?構文に少し混乱しています。

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