ホームページ > Java > &#&チュートリアル > Java 暗黙的スーパー コンストラクター エラー: 「暗黙的スーパー コンストラクター... はデフォルト コンストラクターに対して未定義です」を修正する方法?

Java 暗黙的スーパー コンストラクター エラー: 「暗黙的スーパー コンストラクター... はデフォルト コンストラクターに対して未定義です」を修正する方法?

DDD
リリース: 2024-12-25 12:21:35
オリジナル
713 人が閲覧しました

Java Implicit Super Constructor Error: How to Fix

Java エラー: デフォルト コンストラクターに対して暗黙的なスーパー コンストラクターが定義されていません

Q: サブクラスと抽象基本クラスでのデフォルト コンストラクター エラー

Java 開発者がエラーに遭遇しました「暗黙のスーパー コンストラクター BaseClass() はデフォルト コンストラクターとして定義されていません。」サブクラスから冗長なコンストラクターを削除した後。彼らは、テンプレート メソッド パターンに準拠したままコンストラクターを削除できるかどうか疑問に思っています。

A: 構築コンストラクターとデフォルト コンストラクター

エラーが発生するのは、基本クラス ( BaseClass) はコンストラクター (public BaseClass(String someString)) を宣言し、デフォルトのコンストラクター (引数なし) を無効にします。サブクラス (ACSubClass) からコンストラクターを削除すると、コンパイラーは、デフォルトのコンストラクターを介して、基本クラスの引数なしのコンストラクター (super()) への暗黙的な呼び出しを挿入します。 BaseClass には引数のないコンストラクターがないため、これは不正です。

可能な解決策:

  1. BaseClass からコンストラクターを削除: 基本クラスがデフォルトのコンストラクターのみを持つことを許可し、サブクラスはこれを許可します。継承.
  2. BaseClass で引数なしのコンストラクターを宣言します: 唯一のコンストラクターとして、または他のコンストラクターと一緒に、引数なしのコンストラクターを基本クラスに追加します。

ただし、基本クラスにコンストラクターが必要な場合、これらの解決策は実現できない可能性があります

さらに、設計のリファクタリングを検討してください:

  • ファクトリを使用してサブクラス インスタンスを作成します: でサブクラスの作成を処理するファクトリ クラスを作成します。必要な引数。
  • getName() に引数を渡します。メソッド: 返される名前の値を引数でカスタマイズできるように getName() メソッドを設計します。

以上がJava 暗黙的スーパー コンストラクター エラー: 「暗黙的スーパー コンストラクター... はデフォルト コンストラクターに対して未定義です」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート