Javaにおける継承に対する初歩的な認識



現実の生活の中で、多くの同じ種類のものの中で具体的にもっと細かい種類に分けることができます.例えば、コンピュータはデスクトップパソコン、ノートパソコン、タブレットパソコンに分けることができます.車はバス、自家用車、大型トラックに分けることができます.後者はいずれも前者を継承するいくつかの基本機能に拡張され,さらに区別されていることがわかる.この現象はJAVAプログラミング運用にどのように映っていますか?
たとえば、Computerというクラスを構築し、ブランド名brandとメモリサイズmemoryのプロパティを与え、最後にsetBrandという方法を与えました.LaptopのクラスとIpadのクラスを構築する場合、ブランドとメモリのプロパティを宣言したりsetBrandメソッドを定義したりするのではなく、Computerのプロパティとメソッドを直接継承することができます.これにより、大規模なプログラムを作成する際に、いくつかのクラスの相関性に基づいて、継承によって作業量を大幅に削減することができます.コードの多重化が向上しました.
Java継承キーワード:extends
フォーマットは次のとおりです.
public classクラス名(サブクラス)extendsクラス名(親クラス){
}
以下に具体的な例を示す.
//brandとmemoryのプロパティと起動方法を含むComputerのクラスを定義します.
  
public class Computer{
    String brand;
    int memory;
  public void setBrand(String brand){
    this.brand=brand;
 }
 }
  public class Laptop extends Computer{
    public static void main(String args[]){
      Laptop lap=new Laptop();//  Laptop           lap  
     
      System.out.println(lap.brand); //  lap     Computer   brand
      lap.setBrand("  ");               //  lap     Computer   setBrand
      System.out,println(lap.brand)
 }
 }

 
子クラスは親クラスのすべての属性とメソッド(アクセス修飾子がprivateではない)を継承しているが、親クラスの構築メソッドは継承されていない.上記の例ではLaptopの構築メソッドは、親クラスから継承されるのではなく、システムがデフォルトで持参した無パラメトリック構築メソッドである.また、1つのクラスは1つの親クラスしか継承できない.
もちろん、親の子を継承するには、Laptopがバッテリ容量batteryの属性とフラッシュの方法chargingを追加する必要があるなど、現実的な状況に合致するように拡張型が必要である必要があります.これがその広がりの表れです