12 Javaのオブジェクト指向の継承

/ *

  • オブジェクト指向の継承の特徴
    * 1.なぜ継承する必要がありますか?
  • 同じ特性とクラスの複数の動作の際に存在する、単一のクラスに抽出したコンテンツ、
  • だから、複数のクラスには、限り、あなたはそのクラスを継承できるよう、これらのプロパティと動作を定義する必要はありません。
  • 本明細書にサブクラス(派生クラス)と呼ばれるクラスは、複数の別のクラスは、親クラス(スーパークラスまたは基底クラス)と呼ばれます。
  • 2.クラス継承構文規則:
  • クラスのサブクラスは、スーパークラスを{延び
  • }
  • サブクラスは親クラスの宣言のすべてのプロパティとメソッドを取得するには、サブクラスの後に親クラスを継承したら。
  • 親クラスとプライベート属性やメソッド場合は、親クラス構造体のプライベートサブクラスを取得されますが、理由は、パッケージの影響により、直接サブクラスを取得することはできません
  • サブクラスも拡張を実現するために独自のプロパティとメソッドを定義することができ、将来的に親クラスを継承します。
  • サブセット関係のセットとは異なるサブクラス関係と親クラスは、サブクラス機能は、典型的には親クラスよりも強いです。
  • 3.継承の利点:
  • コードの再利用性を向上させ、コードの冗長性を削減します。
  • 拡張が容易になります。
  • 多型を使用するための前提を提供します
  • 継承の4.java規定
  • クラスは、複数のサブカテゴリーを持つことができます
  • クラスは一つだけの親を持つことができる、唯一の多重継承をサポートしていない、単一継承をサポートしています
  • クラス(日など)のサブクラスのサブクラスを持つことができ、親クラスのマルチレイヤ、サブクラスを継承することができます
  • 親クラス継承直接のサブクラスが直接のスーパークラスで、間接的な親クラスは間接的な親を継承しています
  • サブクラスは親クラスを継承した後、あなたは直接の親クラスの属性とメソッドだけでなく、すべての間接的な親クラスを取得します
  • (クラスjava.lang.Objectを除く)すべてのJavaクラスを直接または間接的に継承するクラスjava.lang.Object上位
  • つまり、すべてのJavaクラスはjava.lang.Objectの関数宣言を持っています。
  • パッケージ内の他のクラスの継承は、パッケージには、他のパッケージを継承親クラスがパブリックに許可を必要と導くために必要です。
  • 親クラスの属性とメソッドの権限は、コンストラクタ本体サブクラス異なるパケットを呼び出す処理で保護することができますが、呼び出しは、オブジェクトのサブクラスをインスタンス化することはできません
  • デバッグツール:
  • 調査バグの方法:
  • 図1は、プログラムに出力文を設定し、コードの少量の場合の動作の様々な段階を参照します
  • 2、該当ECLIPSデバッグツール、セットブレークポイントは、参照するかの期待に沿った各変数の変化
  • デバッグツールの一般的な操作:
  • ソースコードを表示するために使用される現在の方法に列に1STEP
  • 現在の行のステートメントを超える2STEP。次の行に移動します
  • 現在の行方法を実行した後3STEP戻り、次の行
  • 再閲覧メソッド本体電流ラインの方法の最初の行にフレーム背面に4drop
  • ブレーク両端が続いていない場合、ブレークポイントは、次の休憩に行くのコードのすべての現在の行の完全な実装を5resume。
    * /

親クラスを作成します。

package object_chapter2;

public class ExtendsTest {
	public String name = "testname";
	private int age = 18;
	int number = 100;
	protected int argus = 33;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	public int getArgus() {
		return argus;
	}
	public void setArgus(int argus) {
		this.argus = argus;
	}
			
}

異なるパッケージのサブクラスを作成します。

package exercise;

import object_chapter2.*;

//import exercise.ObjectTest; 
public class Test {
	public static void main(String[] args) {
		Subclass sc = new Subclass();
		sc.test();
		System.out.println(sc.name);
		System.out.println(sc.getArgus());
		Subclass sc1 = new Subclass(43);
		System.out.println(sc1.getArgus());
		System.out.println(new Subclass().getArgus());
	}	
}
class Subclass extends ExtendsTest{
	public Subclass() {
		
	}
     public Subclass(int argus) {
		this.argus = argus;
	}
	 public void test() {
		 argus = 23;
		 name = "KK";
	 }
	 public int getArgus() {
		 return argus;
	 }
}
公開された47元の記事 ウォンの賞賛1 ビュー1062

おすすめ

転載: blog.csdn.net/wisdomcodeinside/article/details/104105276