ホームページ > Java > &#&チュートリアル > Javaの抽象クラスとは何ですか?

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

零下一度
リリース: 2017-06-25 09:34:55
オリジナル
2037 人が閲覧しました

インターフェイスを理解するには、まず抽象クラスについて知る必要があります。では、抽象クラスとは何でしょうか?

問題の説明: 私たちの生活には、具体的に説明できないものがたくさんあります。たとえば、四角形には 4 つの辺があると言えます。より具体的に言うと、長方形の 2 つの辺は対称で等しいです。また、正方形の 4 つの辺は対称で等しいです。しかし、一般的なグラフィックスの場合、詳細に記述することは困難です。 Java 言語に変換するということは、非常に特殊なクラスの場合は、そのさまざまな属性やメソッドを簡単に定義できますが、一部のクラスでは、そのメソッドがどのように実装されているかを理解するのが難しいことを意味します。現時点では、抽象クラスを使用できます。 抽象クラスの構文形式は次のとおりです:

1 public abstract class 类名{2   abstract 返回值类型 方法名(参数列表);//定义抽象方法      3 }
ログイン後にコピー
抽象メソッドを定義するためのキーワードは: abstract です。

abstractを使って定義されたクラスを抽象クラス、abstractを使って定義されたメソッドを抽象メソッドと呼びます。

抽象メソッドにはメソッド本体がなく、それ自体に意味がないため、抽象クラスをインスタンス化できません。

サブクラスによって継承される場合、サブクラスはその中のすべての抽象メソッドを実装する必要があります。

クラス内に抽象メソッドが存在する限り、このクラスは抽象クラスとして定義する必要があります。

抽象クラスを理解した後、次の質問について考えてみましょう。次のコードを見てみましょう:

public abstract class shape 
{//定义一个图形抽象类public abstract void toString();//toString抽象方法public abstract void paint();//画图的抽象方法}public class triangle extends shape
{public void toString()
    {
        system.out.println("toString");
    }public void paint()
    {
        system.out.println("paint");
    }
}
ログイン後にコピー
問題はないようです。一部のクラスにペイント メソッドを持たせたくない場合はどうすればよいでしょうか?ペイントメソッドを別のクラスに入れますか?ただし、他のクラスでもこのメソッドを使用する必要があります。 Java の構文では、クラスは複数のクラスを継承できないと規定されています。現時点では、インターフェイスの使用を検討できます。

Interface は抽象クラスの拡張であり、Java の多重継承の欠点を解決します。ペイント メソッドをインターフェイスにカプセル化し、使用する必要があるグラフィックス クラスのサブクラスにこのインターフェイスを実装させることができます。 Java では、クラスは複数のインターフェイスを実装でき、さまざまなメソッドをインターフェイスにカプセル化し、それらをクラスに任せて使用できます。

インターフェースのキーワードはインターフェースです。その定義は次のとおりです:

public interface 接口名  extends 类名  implements 接口,....{  //定义常量
  public static final 数据类型 常量名=值;  //定义抽象方法
  public abstract 返回值类型 方法名 (参数列表);        
}
ログイン後にコピー
次の点に注意してください: 1. インターフェイスはインスタンス化できません 2. インターフェイスのアクセス修飾子は public のみにすることができます 3. インターフェイスは public abstract static Final キーワードを提供しますデフォルトでは

以上がJavaの抽象クラスとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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