継承とは何ですか(拡張)?
継承は次のとおりです。新たに定義されたクラスは、既存のクラスから属性と方法を取得する現象です。 この既存のクラスは親クラスと呼ばれ、この親クラスからプロパティとメソッドを取得するクラスはサブクラスと呼ばれます。
extendsdemo1.java
コードコピーは次のとおりです。
/*継承とは*/
パブリッククラスextendsdemo1 {
public static void main(string [] args){
トラックT = new Truck();
t.size = 100; //これは推奨されません。コンストラクターを使用してメンバー変数を初期化するか、set()とget()インターフェイスを提供することをお勧めします。
//トラッククラスのインスタンスは、車のクラスからサイズと色の属性を継承します。
//どのトラックが車よりも1つの貨物箱を持っていますか
}
}
クラスカー{//車
INTサイズ; //ボディサイズ
文字列色
}
クラストラックは車を拡張します{//トラック
文字列パッキングボックス
}
継承の利点
1.コードの再利用性の改善
2.クラス間の関係が多型の条件を作成します。
継承(拡張)形式
コードコピーは次のとおりです。
クラスサブクラスはスーパークラスを拡張します{
//ステートメントを実行します。
}
スーパーキーワード
1.スーパーキーワードの使用はこれと同じです
2。これはこのクラスの参照を表し、スーパーは親クラスの参照を表します
3.同じ名前のメンバーがサブクラスと親クラスに表示される場合、これを使用してそれを区別できます。
superdemo.java
コードコピーは次のとおりです。
/*スーパーの使用
*出力結果:
* super.i = 10、this.i = 20
*/
パブリッククラスのスーパーデモ{
public static void main(string [] args){
new subclass()。showmessage();
}
}
クラスのスーパークラス{
int i = 10;
}
クラスサブクラスはスーパークラスを拡張します{
int i = 20;
public void showmessage(){
System.out.printf( "super.i =%d、this.i =%d/n"、super.i、this.i);
}
}
親クラスから継承されたメソッドをオーバーライドする(オーバーライド)
1.親クラスがサブクラス(戻り値、関数名、正式なパラメーター)にまったく同じメソッドが表示されると、オーバーライド操作が発生します。
overdidedemo1.java
コードコピーは次のとおりです。
/*親クラスから継承された方法をオーバーライドする方法(オーバーライド)
*出力結果:
*スーパークラス:私は元気です〜
*サブクラス:私は素晴らしいです~~~
*/
パブリッククラスOverridedemo1 {
public static void main(string [] args){
サブクラスsc = new subclass();
sc.speak();
}
}
クラスのスーパークラス{
public void speak(){
System.out.println( "SuperClass:I Am Am Good〜");
}
}
クラスサブクラスはスーパークラスを拡張します{
@Override //@Overrideは、次の方法で書き換え操作を確認することを意味します。コードセキュリティをある程度増加させました
そして堅牢性
public void speak(){
super.speak();
System.out.println( "subclass:私は優れています~~~");
}
}
2.親クラスの方法をオーバーライドすると、子クラスは親クラスと同じ名前とパラメーターを持つ方法ではなく、異なるリターンタイプを持つ方法を許可します。
Overridedemo2.java
コードコピーは次のとおりです。
/*親クラスと同じ名前とパラメーターを持つ方法がありますが、サブクラスでは異なるリターンタイプを持つメソッドは許可されていません。
*エラーメッセージ:
* overridedemo.java:20:エラー:f()subclassのf()はsuperclassのf()をオーバーライドできません
* public int f(){
* ^
* return Type intはvoidと互換性がありません
* overridedemo.java:19:エラー:メソッドはスーパータイプからメソッドをオーバーライドまたは実装しません
* @Override
* ^
* 2つのエラー
*/
パブリッククラスOverrideDemo2 {
public static void main(string [] args){
}
}
クラスのスーパークラス{
public void f(){
}
}
クラスサブクラスはスーパークラスを拡張します{
@オーバーライド
public int f(){
返品1;
}
}
3.サブクラスの方法のアクセス許可は、親クラスの書き込み方法以上でなければなりません。
overridedemo3.java
コードコピーは次のとおりです。
/*サブクラスのメソッドのアクセス許可を無効
*エラーメッセージ:
* overridedemo.java:18:エラー:f()subclassのf()はスーパークラスのf()をオーバーライドできません
*保護されたvoid f(){
* ^
*より弱いアクセス特権を割り当てようとしました
* 1エラー
*/
パブリッククラスOverrideDemo3 {
public static void main(string [] args){
}
}
クラスのスーパークラス{
public void f(){
}
}
クラスサブクラスはスーパークラスを拡張します{
@オーバーライド
保護されたvoid f(){//ここでアクセス許可を公開に変更します
}
}
アクセスコントローラー
アクセス制御文字は次のとおりです。パブリック、保護、デフォルト、プライベート
パッケージのわずかな知識が必要な人もいるので、パッケージについて話すときに話します。