ホームページ Java &#&チュートリアル Javaの改善(8) ----- 多重継承の実装

Javaの改善(8) ----- 多重継承の実装

Feb 09, 2017 pm 01:46 PM

多重継承とは、クラスが同時に複数の親クラスから動作と特性を継承できることを意味します。ただし、Java ではデータのセキュリティを確保するために単一の継承のみが許可されることがわかっています。システムで多重継承が必要な場合、それは設計が悪いのではないかと考えることがあります。その際に考えなければならないのは、多重継承の使用方法ではなく、設計に問題があるかどうかということです。多重継承を実装する必要があります。継承などの状況は現実に存在します。私たちは父親の行動と特性と母親の行動と特性の両方を継承します。幸いなことに、Java は非常に親切で、私たちを理解してくれます。インターフェースと内部クラスという 2 つの方法で多重継承を実現できます。

1. インターフェース

インターフェースと抽象クラスを導入するとき、サブクラスは親クラスを 1 つだけ継承できることを学びました。つまり、継承は 1 つだけですが、複数のインターフェースを実装できるということです。多重継承の実装により道が開かれました。

インターフェースの場合、単なるより純粋な抽象クラス以上のものを表す場合があります。インターフェースには特定の実装がありません。つまり、インターフェースに関連するストレージがないため、複数のインターフェースの組み合わせを防ぐ方法はありません。 。

interface CanFight {  
    void fight();  
}  
  
interface CanSwim {  
    void swim();  
}  
  
  
interface CanFly {  
    void fly();  
}  
  
public class ActionCharacter {  
    public void fight(){  
          
    }  
}  
  
public class Hero extends ActionCharacter implements CanFight,CanFly,CanSwim{  
  
    public void fly() {  
    }  
  
    public void swim() {  
    }  
  
    /** 
     * 对于fight()方法,继承父类的,所以不需要显示声明 
     */  
}
ログイン後にコピー

2. 内部クラス

多重継承を実装するための上記のインターフェイスの使用は、より実現可能で一般的な方法です。内部クラスを導入するときに、内部クラスによって多重継承の実装がより完璧になると述べましたが、それも同様です。親クラスが抽象クラスまたは具象クラスの場合、内部クラスを介してのみ多重継承を実装できます。内部クラスを使用して多重継承を実装する方法については、次の例を参照してください。息子が多重継承を使用して父親と母親の優れた遺伝子を継承する方法。 derth父親よりも強くなるために。ここでは 2 つの内部クラスが定義されており、それぞれ父クラスと母クラスを継承しており、どちらもそれぞれの親クラスの動作を非常に自然に取得できます。これは内部クラスの重要な機能です。内部クラスは、内部クラスから 1 つを継承できます。無関係なクラスは内部クラスの独立性を保証します。これに基づいて多重継承が可能になります。

上記は Java 改善の章 (8) -----多重継承の実装です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか? Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか? Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか? Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? 高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか? Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか? 適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか? Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

See all articles