問題タブ [superclass]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
1039 参照

java - クローン可能な動作

Javadocによると-

クラスObject自体はイ​​ンターフェイスCloneableを実装していないため、クラスがObjectであるオブジェクトに対してcloneメソッドを呼び出すと、実行時に例外がスローされます。

Objectクラスのcloneメソッドが保護されているのはなぜですか?そうですか ?

つまり、cloneableを実装していないクラスは、cloneメソッドが呼び出されたときにCloneNotSupported例外をスローします。

テストプログラムを実行しました

クラステストのクローンメソッドからsuper.cloneが呼び出されていますか?

なぜ例外をスローしないのですか?

0 投票する
2 に答える
2140 参照

java - スーパークラスのコンストラクターを呼び出す前にサブクラスのパラメーターを解析する

スーパーコンストラクターを呼び出す前に、これら 2 つの if ステートメントを配置したいと思います。私はそれができないことを知っているので、Exception呼び出す前にそのようなパラメーターの解析 (を投げる)を行う簡単な方法は何super()ですか?

0 投票する
1 に答える
2050 参照

objective-c - クラス スーパークラス サブクラス

私は2つのサブクラスをクラスにしようとしています:

変更:

私はこれを正しく行っていませんよね?上記を参照してください。エラーが 4 つあります。クラスを作成するのはこれが初めてです。理解を助けてください。ほぼ正しいと思います。

0 投票する
1 に答える
1126 参照

c++ - C ++スーパークラス配列はまだサブクラスメソッドにアクセスしますか?

私は3種類の口座貯蓄、クレジット、住宅ローンを持っているアカウントクラスを持っています。

すべてのアカウントをタイプアカウントとして保持するためのバイナリ検索ツリーを作成しました

オブジェクトのタイプに応じて、サブクラスのメソッドにアクセスするにはどうすればよいですか?

構文とコーディングに関するすべてのエラーを解決しましたが、これです。

2日間頭を抱えています。誰かがこれがどのように行われるか知っていますか?

0 投票する
10 に答える
85637 参照

python - スーパークラスの __init__ メソッドが自動的に呼び出されないのはなぜですか?

Python の設計者は、他の言語のように、サブクラスの__init__()メソッドがスーパークラスのメソッドを自動的に呼び出さないと判断したのはなぜですか? __init__()Pythonicでおすすめのイディオムは本当に以下のようなものですか?

0 投票する
1 に答える
87 参照

java - スーパークラスへの新しいメソッドの追加とその結果生じる問題-可能性?

効果的なJava第2版の項目16、継承よりも構成を優先すると次のように述べられています

「スーパークラスが後続のリリースで新しいメソッドを取得し、サブクラスに同じシグネチャと異なるリターンタイプのメソッドを与えることができなかった場合、サブクラスはコンパイルされなくなります。

新しいスーパークラスメソッドと同じシグニチャとリターンタイプを持つメソッドをサブクラスに指定した場合は、それをオーバーライドすることになります。」

これらのケースが実際の状況で発生する可能性はどのくらいありますか?ここにいる誰かが実際のビジネスアプリの例を教えてもらえますか(必要に応じて専有情報を削除します)?

0 投票する
2 に答える
3215 参照

python - 変数スーパークラス メソッドの呼び出し

可変メソッド名を使用してスーパークラスのメソッドを呼び出そうとしています。通常、次の 2 行のコードは同等のものとして表示されます。

実際、これは最初の行を使用したときに実際に起こることでもあると私は信じています。ただし、次の例では、2 行目で奇妙な問題が発生します。

superスーパー オブジェクトを構築し、スーパー クラスのメソッドを呼び出すために使用します。直接実行すると期待どおりに機能し__getattribute__ますが、最初にメソッドを取得するために使用すると、サブクラスのメソッドを何度も呼び出す無限ループが発生します。

次のコードを参照してください。

そのコードを実行すると、すべてが期待どおりに機能し、次のような出力が得られるはずです。

したがって、直接アクセスする方法と を介する方法の両方の方法は__getattribute__同じように見えます。ただし、メソッド呼び出しをコメントアウトされた行に置き換えると、再帰ランタイム エラーが発生します。

なぜこれが起こるのか、さらに重要なことに、作業ラインを使用するときに、Python が内部的に行うのと同じ方法で実際にメソッドにアクセスするにはどうすればよいでしょうか?

編集

すでにすべてを試したと思ったとき、これが機能していることがわかりました:

実際には に等しくなりsuper( B, self ).exampleます。

0 投票する
1 に答える
642 参照

objective-c - 警告: サブクラスにスーパークラスを割り当てる、互換性のない Objective-C 型

有効なスーパークラスと有効なサブクラス、つまりクラスが機能すると仮定します。

サブクラスのコンストラクターの次の行 self = [super init] ;

次の警告をスローします // 警告: 'struct Animal *' を割り当てている互換性のない Objective-C 型、予期される 'struct Cat *'

これを修正して警告を削除する方法についてのアイデアはありますか?

乾杯

0 投票する
5 に答える
2776 参照

objective-c - why does initializing subclasses require calling the super class's same init function?

I have heard that when you have a subclass, you are supposed to initialize the superclass with the same init function from within the subclass's init. What I mean is that the subclass's init should call [super init] and the subclass's initWithFrame should call [super initWithFrame]. Why is this? Why does calling the super's init from a subclass's initWithFrame result in an infinite loop?

If this is required, then does this mean I can't create a new init function within a subclass such as initWithPoint and have that call super's init or initWithFrame simply because the super class doesn't have initWithPoint? I guess the heart of the question here is simply why it's improper to call a different super class, something that's confusing me possibly because of my c++ background?

0 投票する
5 に答える
6606 参照

scala - Scalaタプルの一般的な「マップ」関数?

タイプRを返す単一の関数を使用してScalaタプル(またはトリプル、...)の要素をマップしたいと思います。結果は、タイプRの要素を持つタプル(またはトリプル、...)になります。

OK、タプルの要素が同じタイプのものである場合、マッピングは問題ではありません。

しかし、このソリューションを一般的にすること、つまり、同じ方法で異なるタイプの要素を含むタプルをマップすることも可能ですか?

例:

戻る必要があります

しかし、マッピング関数がSub1とSub2のスーパータイプを決定するように解決策を見つけることができませんでした。タイプ境界を使用しようとしましたが、私のアイデアは失敗しました。

ここでX >: BオーバーライドするようX >: Aです。Scalaは複数のタイプに関するタイプ境界をサポートしていませんか?はいの場合、なぜですか?