Javaの抽象クラスの完全な紹介



この記事は、Javaの抽象クラスに対する詳細なアプローチと、概念をよりよく理解するための例を示しています。

の抽象クラス ユーザーが抽象化を達成するのを支援します。これは、ソフトウェア設計のプロセス中に従う最も重要なオブジェクト指向プログラミング手法です。この記事では、次のドケットを通じて抽象クラスの用語について説明します。

Javaの抽象クラスとは何ですか?

の抽象クラス 実装方法とその機能の間の境界として機能します。これは、機能を交換するために使用されます コンクリート クラスのメンバーと 概要 クラス。





Abstract-Classes-in-Java-Edureka

抽象クラスは、を隠すクラスと見なされます メソッドの実装 ユーザーからの詳細と表示のみ メソッドの機能。 それらはキーワードを使用して宣言されます 概要 。これらのメソッドには、 概要 そして 非抽象的 それらのメソッド。

def __init__

Javaで抽象クラスが必要なのはなぜですか?

次の理由から、Javaの抽象クラスが必要です。



  • 抽象クラスのサポート 動的メソッド解決 実行時
  • それらはユーザーが達成するのを助けます 疎結合
  • 抽象クラスは、 メソッド定義 継承から サブクラス
  • 彼らは提供します デフォルトの機能 すべてのサブクラスに対して定義されたメソッドの
  • 抽象クラスは テンプレート 将来の特定のクラスのために
  • 抽象クラスは コード 再利用性

Javaで抽象クラスを使用するためのルール

Javaで抽象クラスを実装するには、以下に説明するルールに従う必要があります。



  • 抽象クラスは、を使用して宣言する必要があります 概要 キーワード。
  • 抽象クラスには次のものを含めることができます 概要 そして 非抽象的 メソッド。
  • 抽象クラスはできません インスタンス化されました。
  • それらは含めることができます コンストラクター そして 静的 メソッド。
  • 抽象クラスには 最後の メソッド。

Javaで抽象化を実現する方法

Javaでの抽象化のプロセスは、以下に説明する次の2つの方法で実現できます。

  1. 抽象クラスの実装
  2. インターフェイスの実装

抽象クラスの構文

抽象クラスと抽象メソッドを定義するための構文は次のとおりです。

抽象クラスEdureka {}
抽象クラスMethod()

抽象クラスの実用例

//抽象クラス

パッケージ抽象パブリック抽象クラスPerson {プライベート文字列名プライベート文字列性別publicPerson(String nm、String gen){this.name = nm this.gender = gen} public abstract void Studying()@ Override public String toString(){return ' Name = '+ this.name +' :: Gender = '+ this.gender}}

//学生クラス

パッケージAbstractpublic class Student extends Person {private int StudentID public Student(String nm、String gen、int id){super(nm、gen)this.StudentID = id} @Override public void Studying(){if(StudentID == 0 ){System.out.println( 'Not Studying')} else {System.out.println( 'Pursuing a Degree in Bachelor of Engineering')}} public static void main(String args []){Person student = new Student ( 'Priya'、 'Female'、0)Person student1 = new Student( 'Karan'、 'Male'、201021)Person student2 = new Student( 'Kumari'、 'Female'、101021)Person student3 = new Student( ' John '、' Male '、201661)student.Studying()student1.Studying()student2.Studying()student3.Studying()System.out.println(student.toString())System.out.println(student1.toString ())System.out.println(student2.toString())System.out.println(student3.toString())}}

出力:

勉強していない
工学士号を取得する
工学士号を取得する
工学士号を取得する
名前=プリヤ::性別=女性
名前=カラン::性別=男性
名前=くまり::性別=女性
名前=ジョン::性別=男性

C ++での参照による呼び出し

インターフェイスと抽象クラスの違い

インターフェース 抽象クラス
抽象メソッドのみを持つことができます抽象的および非抽象的メソッドを持つことができます
最終変数のみがあります非最終変数が含まれます
静的変数と最終変数のみがあります静的、非静的、最終、非最終変数があります
抽象クラスを実装しませんインターフェイスを実装できます
「implements」キーワードを使用して実装「extends」キーワードを使用して実装
インターフェイスのみを拡張できますJavaクラスとインターフェースを拡張できます
メンバーはデフォルトで公開されていますメンバーはプライベートで保護することができます

//抽象クラスの例

package abstactVSinterface abstract class Shape {String objectName = '' Shape(String name){this.objectName = name} abstract public double area()abstract public void draw()} class Rectangle extends Shape {int length、width Rectangle(int length、 int width、String name){super(name)this.length = length this.width = width} @Override public void draw(){System.out.println( 'Rectangle is draw')} @Override public double area() {return(double)(length * width)}} class Circle extends Shape {double pi = 3.14 int radius Circle(int radius、String name){super(name)this.radius = radius} @Override public void draw(){ System.out.println( 'Circle is draw')} @Override public double area(){return(double)((pi * radius * radius)/ 2)}} class Edureka {public static void main(String [] args ){Shape rect = new Rectangle(20、30、 'Rectangle')System.out.println( 'Area of​​rectangle:' + rect.area())Shape circle = new Circle(20、 'Cicle')System.out .println( '円の面積は:' + circle.area())}}

出力:

長方形の面積:600.0
円の面積は:628.0

//インターフェースの例

パッケージabsVSintインターフェイスShape {void draw()double area()}クラスRectangleはShape {int length、width Rectangle(int length、int width){this.length = length this.width = width} @Override public void draw()を実装します{System.out.println( '長方形が描画されました')} @Override public double area(){return(double)(length * width)}}クラスCircleはShapeを実装します{double pi = 3.14 int radius Circle(int radius) {this.radius = radius} @Override public void draw(){System.out.println( 'Circle has drawed')} @Override public double area(){return(double)((pi * radius * radius)/ 2)}} class Edureka {public static void main(String [] args){Shape rect = new Rectangle(20、30)System.out.println( 'Area of​​rectangle:' + rect.area())Shape circle = new Circle(20)System.out.println( 'Area of​​ circle:' + circle.area())}}

出力:

長方形の面積:600.0
円の面積:628.0

これで、この記事は終わりです。抽象化、構文、機能、Javaでの抽象化のルール、およびそれらに関連する実際の例の重要性を理解していただければ幸いです。

Javaの文字列は不変です

Javaの基本を理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやHibernateなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

質問がありますか?この「Javaの抽象クラス」ブログのコメントセクションで言及してください。できるだけ早くご連絡いたします。