検索
ホームページJava&#&チュートリアルポリモーフィックを理解せずに Java のフィールドおよび静的メソッドにアクセスする

1. メソッド呼び出しをメソッド本体に関連付けることを

2. コンパイル時バインディング (静的) は、プログラムのコンパイル段階で参照されるオブジェクトの型を決定します

3.実行中に参照されるオブジェクトの実際の型を判断し、その実際の型に従って対応するメソッドを呼び出すこと

4. 静的メソッドと最終メソッド (プライベート メソッドは最終メソッド) を除き、他のすべてのメソッドは遅延バインディングです。 Java のメソッドは動的バインディングによってポリモーフィックになります

5. 特定のフィールドにアクセスする動作はポリモーフィックではありません


package polymorphism;

class SuperField {
	public int field = 1;

	public int getField() {
		return field;
	}
}

class SubField extends SuperField {
	public int field = 2;
	
	public int getField() {
		return field;
	}
	
	public int getSuperField() {
		return super.field;
	}
}

public class FieldPolymorphism {

	public static void main(String[] args) {
		SuperField sup = new SubField();
		System.out.println("sup.field = " + sup.field + ", sup.getField() = " + sup.getField());
		SubField sub = new SubField();
		System.out.println("sub.field = " + sub.field + ", sub.getField() = " + sub.getField() +
				", sub.getSuperField() = " + sub.getSuperField());
	}

}

出力結果:

sup.field = 1, sup.getField() = 2
sub.field = 2, sub.getField() = 2, sub.getSuperField() = 1

SubField オブジェクトが Super に変換されると、参照されると、あらゆるフィールド アクセス操作が行われます。 SubField には、実際にはフィールドと呼ばれる 2 つのフィールドが含まれています。それ自体のフィールドと SuperField から継承されたフィールドです。通常、このフィールドはプライベートに設定されており、直接アクセスすることはできず、継承することもできず、呼び出しによってアクセスされます。メソッド

6. 静的メソッドへのアクセスはポリモーフィックではなく、単一のオブジェクトに関連付けられていません

package polymorphism;

class Super {
	
	public static String staticMethod() {
		return "Super staticMethod()";
	}
}

class Sub extends Super {
	public static String staticMethod() {
		return "Sub staticMethod()";
	}
}

public class StaticPolymorphism {

	public static void main(String[] args) {
		Super sup = new Sub();
		System.out.println(sup.staticMethod());
		System.out.println(Sub.staticMethod());
	}

}

出力結果:

Super staticMethod()
Sub staticMethod()

以上がポリモーフィックを理解せずに Java のフィールドおよび静的メソッドにアクセスするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール