継承、スーパー、ファイナル、上書き

継承に関しては、Javaは単一継承と多重継承のみをサポートします。

				 即为一个类仅能有一个父类;

継承とは何ですか?

	继承可以提升代码的复用性(目的),父类的功能,子类可以直接使用;
																					  使子类的功能更加强大;
	java中用extends关键字表示继承;
	语法:public class 类名 extends 父类名{类体}

注:
プライベート化された属性は継承できません。
クラスが別のクラスを継承することを示さない場合、クラスはデフォルトでObjectを継承します
。java.lang.Objectはjavaの祖先クラスです。
つまり、Objectの属性はすべてで使用可能です。のクラス;

super:親タイプの特性を維持します。

			作用:子类访问父类的属性

スーパー使用法:

		1.用于成员方法/构造方法中区分子类和父类同名的成员属性;		
		2.用于子类构造方法中,调用父类构造方法;(必须出现在有效代码第一行)

構文:super(パラメーター);

注:
①サブクラスの構築メソッドにthis()もsuper()も
存在しない場合、デフォルトのsuper()があり、親クラスのパラメーターなしの構築を呼び出します
。②thisとsuperは構築メソッドに表示される必要があります。行の場合、2つを同時に表示できないことを意味します
。③静的メソッドではthisもsuperも使用できません。

概要:
クラス名は、静的変数と
同じ名前のローカル変数を区別するために使用されます。これは、メンバー変数と同じ名前のローカル変数を区別するために
使用されます。superは、同じ名前の変数とメソッドを分子クラスから区別するために使用されます。親クラス;
super:サブクラス構築メソッドはsuper();を使用します親クラスの構築メソッドを呼び出すため;構築メソッドの
最初の行にthis()とsuper()が表示されない場合、デフォルトはsuper()です。親クラスのパラメータなし構造を呼び出します;
1。オブジェクトを作成します;
2。親属性を初期化します

this()とsuper()をコンストラクターの有効なコードの最初の行に表示する必要があるのはなぜですか?

	 super():用来调用父类的构造方法,初始化父类属性,并创建对象;
	 最终一定会溯源调用到祖类Object,通过Object创建对象;
	 既然创建对象,就必须在构造方法第一行。因为构造方法有初始化成员属性的功能;
	 成员属性想要初始化,必须要有存储它的空间,而这个空间就在对象中;
	 所以要保证先有对象,再有数据初始化,所以super()必须在第一行;
	
	 this():重载调用当前类的其他构造方法;
				保证先有对象;

構築メソッドが民営化された後は継承できません。
サブクラスの構築メソッドです
、親クラスのパラメータなしの構築を呼び出すデフォルトのsuper()がありますが、民営化のため、アクセス権限はありません。

インスタンスブロック

間違いなくオブジェクトを使用する必要があるメンバーメソッドと見なすことができます
が、名前がないため、手動で呼び出すことはできず、自動的に呼び出すことしかできません。
呼び出されると、オブジェクトが作成され、すぐに実行される
ため、インスタンスステートメントブロックは、オブジェクトが作成された後、構築メソッドの実行前に実行されます。

上書き:書き換え、上書きとも呼ばれます

サブクラスが親クラスを継承した後、一部のプロパティを親クラスとは異なる必要があるという問題を解決し
ます
。①子クラスには独自のプロパティがあります親クラスのメンバーメソッドをオーバーライドできます(オーバーライドは特にメンバーメソッドを参照します)

どのような状況で上書きする必要がありますか?
親クラスのメソッドが子クラスのニーズを満たすことができなくなった場合、親クラスのメソッドを上書きする必要があります。上書きするため
の条件何ですか?
1.継承のあるシステム内にある必要があります
。2。メソッド名、戻り値の型、およびパラメーターリストがすべて同じである必要があります
。3。元のメソッドに、より広範な例外を強制することはできません(例外はより具体的です)。 ;
4.元のメソッドと比較することはできませんアクセス権が低くなります(レベルが低いほどアクセス権が高くなります)
。5。上書きとは、特に親クラスのメンバーメソッドの上書きを指します。
継承最も基本的な機能:コードの再利用;
継承の最も重要な機能:メソッドは上書き可能、多態性;
上書きの目的は?
1.現在のニーズを満たし、メソッド本体を変更します
。2。エラーはますます少なくなり、特定のポイントに固有のものになり、より広い例外はあり得ません。3。
使用範囲はますます広くなっています。レベル。、低いアクセス権を持つことはできません(親クラスは子クラスのアクセス権よりも低いアクセス権を持っています);
4。ますます強力な機能。

final:final、final、およびunchangeableを意味する修飾子。

注:①変更されたクラスは継承できません
。②変更された変数は定数と同等であり、(プログラムのライフサイクル全体で)2回割り当てることはできません。
デフォルト値はなく、定数は通常public staticfinal変更されています
。③変更されたメンバーメソッドは上書きできません。

詳細な決勝:

				final 修饰的变量,内存空间中的值不可更改;
				如果修饰的是引用类型变量,地址不能更改,
				但是与堆内存的内存空间无关(数据可以更改);

おすすめ

転載: blog.csdn.net/MIRACLE_Ying/article/details/112646485